Python 将列表中的行分组并转置
我发现了一个问题,需要更进一步 此问题所需的输出为Python 将列表中的行分组并转置,python,pandas,numpy,pandas-groupby,Python,Pandas,Numpy,Pandas Groupby,我发现了一个问题,需要更进一步 此问题所需的输出为 A [1,2] B [5,5,4] C [6] 我想要达到的是 A B C 1 5 6 2 5 4 我试过使用 grouped=dataSet.groupby('Column1') df = grouped.aggregate(lambda x: list(x)) 我的输出被它绊住了 df.T Column1 A B C [1,2] [5,5,4] [6] 我相信您需要由constructor
A [1,2]
B [5,5,4]
C [6]
我想要达到的是
A B C
1 5 6
2 5
4
我试过使用
grouped=dataSet.groupby('Column1')
df = grouped.aggregate(lambda x: list(x))
我的输出被它绊住了
df.T
Column1 A B C
[1,2] [5,5,4] [6]
我相信您需要由constructor创建
DataFrame
:
df = pd.DataFrame( {'a':['A','A','B','B','B','C'], 'b':[1,2,5,5,4,6]})
s = df.groupby('a')['b'].apply(list)
df = pd.DataFrame(s.values.tolist(), index=s.index).T
print (df)
a A B C
0 1.0 5.0 6.0
1 2.0 5.0 NaN
2 NaN 4.0 NaN
我认为这里没有必要使用列表列。 您可以通过对groupby生成的组进行简单的词典理解来获得结果:
out = pd.concat({key:
group['b'].reset_index(drop=True)
for key, group in df.groupby('a')}, axis=1)
这将提供所需的输出:
out
Out[59]:
A B C
0 1.0 5 6.0
1 2.0 5 NaN
2 NaN 4 NaN
为什么今天每一个熊猫问题都有一列列表?和它们一起工作很糟糕,而不是熊猫的本意。请重新评估您的策略。您好,我是熊猫的新手,从今天早上开始我就一直在抓挠脑袋,好吧,我会注意到熊猫不适合列出来。你能给我提出解决这个问题的策略吗?我尝试过使用pivot,但没有找到任何解决方案。效果很好:)很高兴听到!如果问题解决了,别忘了投票/接受它:)