数据帧有
ID col col2 col3 col4
1 A 50 S 1
1 A 52 M 4
1 B 45 N 8
1 C 18 S 7
需要数据帧
^{pr2}$我想要一行每唯一的ID+col(groupbyid和col)。 如果每个ID+col有多个条目(max可以是2,不能更多),那么将col2的第一个值放在colA中,第二个值放在colB中,col3的第一个值放在colC中,第二个值放在colF中,col4的第一个值放在colF中。如果每个ID+col只有一个条目,那么对于col2,将值放入colA,colB为null等
我试着先创建一个计数器:
df['COUNT'] = df.groupby(['ID','col']).cumcount()+1
从这里开始我想增加一个专栏
if count=1 then df['colA']=df.col2
if count=2 then df['colB']=df.col2
。。但这仍然会产生与原始df相同的行数。在
不确定这是否是您要寻找的,但它呈现的结果与您正在寻找的结果相同。请注意,我在同一列上使用多个聚合函数,因此使用ravel函数来展平数据帧列。在
我想需要^{} 和{a2}:
或者:
^{pr2}$编辑:
对于多个列,解决方案是否有点改变,因为在列中使用
MultiIndex
:您可以将
groupby
与apply(pd.Series)
一起使用相关问题 更多 >
编程相关推荐