grouping rows in list in pandas groupby
我找到了问题,需要更进一步
这个问题所需的输出是
.topfix {
position: fixed;
width: 100%;
top: 0px;
height: 42px;
}
.content {
text-align: center;
width: 80%;
margin: 0% 10%;
background-color: #f0f0f0;
margin-top: 42px;
}
我想要实现的是
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))
答案 0 :(得分:1)
我认为这里不需要使用列表列。 您可以使用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
答案 1 :(得分:0)
我相信你需要通过contructor创建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