如何在 pandas 中附加两个或多个数据帧并进行一些分析

how to append two or more dataframes in pandas and do some analysis

我有 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]})

我可以一个一个追加,但我想一次追加所有三个数据帧并做一些分析。

我正在尝试计算包含在多少数据帧中的名称除以总数据帧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