如何通过循环按列表中存储的列名分组,并将这些列名的值存储在新的variab中

2024-09-27 07:27:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个dataframe,列名为A,B,C,D,e,f,g,h。这些列名以cols1=[A,B,C,D,e,f,g,h]的形式存储在一个列表中

我必须把这些列归为数据框groupby(['A'、'B'、'C'、'D'、'e']),并将其存储在变量名中作为e

再说一遍数据框groupby(['A'、'B'、'C'、'D'、'f']),并将其作为f存储在变量名中

再说一遍数据框groupby(['A'、'B'、'C'、'D'、'g'])直到列表末尾。你知道吗

这应该在一段时间内完成循环。然后呢然后储存groupby.sum()新变量中e、f、g等列的值,以比较e、f、g、h的值

有没有什么办法熊猫。谢谢提前


Tags: 数据dataframe列表形式sum储存groupby末尾
1条回答
网友
1楼 · 发布于 2024-09-27 07:27:13

IIUC您需要^{}sum

df = pd.DataFrame({'A':[1,8,8],
                   'B':[4,6,6],
                   'C':[7,2,2],
                   'D':[1,3,3],
                   'e':[2,3,6],
                   'f':[0,2,4],
                   'g':[7,4,1],
                   'h':[1,4,2]})

print (df)
   A  B  C  D  e  f  g  h
0  1  4  7  1  2  0  7  1
1  8  6  2  3  3  2  4  4
2  8  6  2  3  6  4  1  2

cols1=['A','B','C','D','e','f','g','h']
cols11 = cols1[:4]
print (cols11)
['A', 'B', 'C', 'D']
cols12 = cols1[4:]
print (cols12)
['e', 'f', 'g', 'h']

df = df.groupby(cols11)[cols12].sum()
print (df)
         e  f  g  h
A B C D            
1 4 7 1  2  0  7  1
8 6 2 3  9  6  5  6

df = df.reset_index(drop=True)
print (df)
   e  f  g  h
0  2  0  7  1
1  9  6  5  6

相关问题 更多 >

    热门问题