【发布时间】:2018-10-25 09:49:50
【问题描述】:
数据框有
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
数据框想要
ID col colA colB colC colD colE colF
1 A 50 52 S M 1 4
1 B 45 NULL N NULL 8 NULL
1 C 18 NULL S NULL 7 NULL
我希望每个唯一 ID+col(groupby ID 和 col)各有 1 行。 如果每个 ID+col 有多个条目(最大值可以是 2,不能再多了),则将 col2 的第一个值放入 colA,将第二个值放入 colB,将 col3 的第一个值放入 colC,第二个值放入 colD,放入第一个colE 中 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 相同的行数。
【问题讨论】: