Python 将数据帧组与一列相乘,同时与其他列相乘
我正在使用导入了熊猫的python来处理csv文件中的一些数据。只是到处玩,试着学点新东西 我有以下数据框: 我想按col1对数据进行分组,以便得到以下结果。这是col1上的Python 将数据帧组与一列相乘,同时与其他列相乘,python,pandas,Python,Pandas,我正在使用导入了熊猫的python来处理csv文件中的一些数据。只是到处玩,试着学点新东西 我有以下数据框: 我想按col1对数据进行分组,以便得到以下结果。这是col1上的groupby,col3和col4相乘 我一直在看一些youtube视频,读一些关于堆栈溢出的类似问题,但我遇到了麻烦。到目前为止,我有以下内容,其中包括创建一个新的Col来保存Col3 x Col4的结果: df['Col5'] = df.Col3 * df.Col4 gf = df.groupby(['col1',
groupby
,col3和col4相乘
我一直在看一些youtube视频,读一些关于堆栈溢出的类似问题,但我遇到了麻烦。到目前为止,我有以下内容,其中包括创建一个新的Col来保存Col3 x Col4的结果:
df['Col5'] = df.Col3 * df.Col4
gf = df.groupby(['col1', 'Col5'])
差不多了,但最后您按太多的列进行分组。尝试:
gf = df.groupby('Col1')['Col5'].sum()
或者将其作为数据帧,而不是将其作为索引(我判断这是您从图像中想要的),在groupby中包括as_index=False
:
gf = df.groupby('Col1', as_index=False)['Col5'].sum()
您可以在不创建新列的情况下使用解决方案,您可以使用aggregate
sum
按列对多个列进行聚合,它是:
另一种解决方案是通过Col1
by、多列by和最后一列sum
bylevel=0创建索引:
gf = df.set_index('Col1')[['Col3','Col4']].prod(axis=1).sum(level=0).reset_index(name='Col2')
这似乎有效,但结果看起来很奇怪。它以以下格式显示结果:1.837280e+03这似乎也可行,但我的结果看起来很奇怪。它以以下格式显示结果:1.837280e+03。我可以将其显示为实数吗?@Silentbob-可能是intigers的大值,如何工作gf['Col2']=gf['Col2'].astype(np.int64)
?
gf = df.set_index('Col1')[['Col3','Col4']].prod(axis=1).sum(level=0).reset_index(name='Col2')