gpt4 book ai didi

python - Pandas groupby 并与其他数据框求和

转载 作者:太空宇宙 更新时间:2023-11-03 21:37:25 25 4
gpt4 key购买 nike

我有一个字典,其中键是文件名,值是数据帧,如下所示:

col1     col2
A 10
B 20
A 20
A 10
B 10

我想基于“col1”进行分组以求和“col2”中的值并将其存储到新的数据帧“df”,其输出应如下所示:

输出应如下所示:

Index    A      B  
file1 40 30
file2 50 35

我的代码:

df=pd.DataFrame(columns=['A','B'])
for key, value in data.items():

cnt=(value.groupby('Type')['Packets'].sum())
print(cnt)

df.append(cnt,ignore_index=True)

最佳答案

另一种建议的方式,将分组、转置和行堆栈放入数据帧中。

import pandas as pd
import numpy as np

df_1 = pd.DataFrame({'col1':['A', 'B', 'A', 'A', 'B'], 'col2':[10, 20, 20, 10, 10]})
df_2 = pd.DataFrame({'col1':['A', 'B', 'A', 'A', 'B'], 'col2':[30, 10, 15, 5, 25]})
df_1_agg = df_1.groupby(['col1']).agg({'col2':'sum'}).T.values
df_2_agg = df_2.groupby(['col1']).agg({'col2':'sum'}).T.values
pd.DataFrame(np.row_stack((df_1_agg, df_2_agg)), index = ['file1', 'file2']).rename(columns = {0:'A', 1:'B'})

enter image description here

已编辑:为了概括,您需要将其放入函数中并循环遍历。另外,一般情况下需要格式化索引(file{i})。

lst_df = [df_1, df_2]

df_all = []

for i in lst_df:
# iterate every data faame
df_agg = i.groupby(['col1']).agg({'col2':'sum'}).T.values

# append to the accumulator
df_all.append(df_agg)

pd.DataFrame(np.row_stack(df_all), index = ['file1', 'file2']).rename(columns = {0:'A', 1:'B'})

关于python - Pandas groupby 并与其他数据框求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53157663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com