如何在 pandas 中附加两个或多个数据框并进行一些分析 [英] how to append two or more dataframes in pandas and do some analysis

查看:49
本文介绍了如何在 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆