Python 熊猫按多列分组并按行获取输出
我有一个场景,其中我有一个数据帧,如: dF: 我想要的输出是:Python 熊猫按多列分组并按行获取输出,python,pandas,dataframe,pandas-groupby,Python,Pandas,Dataframe,Pandas Groupby,我有一个场景,其中我有一个数据帧,如: dF: 我想要的输出是: 1 2 3 a 1 1 0 b 2 1 0 c 1 1 1 d 1 1 1 e 1 2 1 我的原始数据框中有500多个列,我希望它们按这些列分组,并将它们作为行,将最后一列的行值转换为列 我试图通过以下方式进行分组: df.groupby(col[0:-1])['kmeans'].sum(),但我得到一个错误 我以前使用过groupby,但从未遇到过这样的问题。
1 2 3
a 1 1 0
b 2 1 0
c 1 1 1
d 1 1 1
e 1 2 1
我的原始数据框中有500多个列,我希望它们按这些列分组,并将它们作为行,将最后一列的行值转换为列
我试图通过以下方式进行分组:
df.groupby(col[0:-1])['kmeans'].sum(),但我得到一个错误
我以前使用过groupby,但从未遇到过这样的问题。
非常感谢您的帮助。我想您需要通过kmeans
聚合sum
,然后转置并最后删除列名kmeans
:
df1 = df.groupby('kmeans').sum().T.rename_axis(None, axis=1)
print (df1)
1 2 3
a 1 1 1
b 2 1 0
c 1 1 1
d 1 1 1
e 1 2 1
或者,如果按kmeans
创建索引,则仅按第一级、转置和最后删除列mame使用sum
:
df1 = df.set_index('kmeans').sum(level=0).T.rename_axis(None, axis=1)
print (df1)
1 2 3
a 1 1 1
b 2 1 0
c 1 1 1
d 1 1 1
e 1 2 1
我认为您需要通过kmeans
聚合sum
,然后转置并最后删除列名kmeans
:
df1 = df.groupby('kmeans').sum().T.rename_axis(None, axis=1)
print (df1)
1 2 3
a 1 1 1
b 2 1 0
c 1 1 1
d 1 1 1
e 1 2 1
或者,如果按kmeans
创建索引,则仅按第一级、转置和最后删除列mame使用sum
:
df1 = df.set_index('kmeans').sum(level=0).T.rename_axis(None, axis=1)
print (df1)
1 2 3
a 1 1 1
b 2 1 0
c 1 1 1
d 1 1 1
e 1 2 1
为什么(a,1)==2
?看起来应该是1
my bad!我编辑了我的问题。为困惑道歉为什么(a,1)==2
?看起来应该是1
my bad!我编辑了我的问题。抱歉搞砸了哇!我得到答案了,让我检查一下我的案子是否有效。谢谢!!!!哇!我得到答案了,让我检查一下我的案子是否有效。谢谢!!!!