[英]Combine multiple rows into one row based on Column values in pandas
我正在嘗試解析 csv 文件,我幾乎已經完成了該文件,但在某一點上卡住了。 我想將行與上一行合並其中上一行的第 1 列不應該是 null 。 我有這樣的數據格式。
C1 C2 C3 C4 C5
1001 1S30 5:00:00 MP GL
NaN 1M94 9:06:00 GL MP
1101 1P1 6:35:00 MP Vic
NaN 9E06 07:02:00 Vic N
NaN 9M08 10:02:00 N Liv
NaN 9E13 13:26:00 Liv Vic
NaN 1P26 4:40:00 Vic MP
我想組合如下給定格式的行
我被困住了,因為
在這里任何幫助將不勝感激。
更新:
df.groupby(df['C1'].ffill()).apply(lambda x: x.stack().reset_index())[0].unstack().reset_index()
Output:
C1 0 1 2 3 4 5 6 7 8 ... 11 \
0 1001.0 1001 1S30 5:00:00 MP GL 1M94 9:06:00 GL MP ... NaN
1 1101.0 1101 1P1 6:35:00 MP Vic 9E06 07:02:00 Vic N ... N
12 13 14 15 16 17 18 19 20
0 NaN NaN NaN NaN NaN NaN NaN NaN NaN
1 Liv 9E13 13:26:00 Liv Vic 1P26 4:40:00 Vic MP
[2 rows x 22 columns]
嘗試:
df.groupby(df['C1'].ffill()).apply(pd.melt, id_vars='C1')['value'].unstack().reset_index()
Output:
C1 0 1 2 3 4 5 6 7 \
0 1001.0 1S30 1M94 5:00:00 9:06:00 MP GL GL MP
1 1101.0 1P1 9E06 9M08 9E13 1P26 6:35:00 07:02:00 10:02:00
8 ... 10 11 12 13 14 15 16 17 18 19
0 NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1 13:26:00 ... MP Vic N Liv Vic Vic N Liv Vic MP
[2 rows x 21 columns]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.