如何在 pandas 中附加两个或多个数据框并进行一些分析 [英] how to append two or more dataframes in pandas and do some analysis
本文介绍了如何在 pandas 中附加两个或多个数据框并进行一些分析的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有3个df:
df1=pd.DataFrame({"Name":["one","two","three"],"value":[4,5,6]})
df2=pd.DataFrame({"Name":["four","one","three"],"value":[8,6,2]})
df3=pd.DataFrame({"Name":["one","four","six"],"value":[1,1,1]})
我可以一个接一个地添加,但我想一次附加所有三个数据帧并进行一些分析.
I can append one by one but I want to append all the three data frames at a time and do some analysis.
我正在尝试计算名称中包含多少个数据帧除以总数据帧name present in dataframes/total dataframes
I am trying to count the name contains in how many data frame divided by total dataframes name present in dataframes/total dataframes
我想要的输出是
Name value Count
one 11 1
two 5 0.333
three 8 0.666
four 9 0.666
six 1 0.333
请帮助,谢谢!
推荐答案
使用:
dfs = [df1, df2, df3]
df = pd.concat(dfs)
df1 = df.groupby('Name')['value'].agg([('value', 'sum'), ('Count', 'size')]).reset_index()
df1['Count'] /= len(dfs)
类似的解决方案:
df1 = (pd.concat(dfs)
.groupby('Name')['value']
.agg([('value', 'sum'), ('Count', 'size')])
.assign(Count = lambda x: x.Count /len(dfs))
.reset_index())
print (df1)
Name value Count
0 four 9 0.666667
1 one 11 1.000000
2 six 1 0.333333
3 three 8 0.666667
4 two 5 0.333333
这篇关于如何在 pandas 中附加两个或多个数据框并进行一些分析的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文