我在Pandas中有以下数据帧:
C1 C2 C3 C4
2021 4 1X "First text "
2021 NaN NaN "continued"
2021 NaN NaN "still Continued"
2021 5 1Y "second text"
2021 NaN NaN "continued"
我想将其转换为数据帧,如下所示:
C1 C2 C3 C4
2021 4 1X "First text continued still continued"
2021 5 1Y "second text continued"
也就是说,我想将C4
列的行合并为一行,直到C2
和C3
列中出现新值。有什么有效的方法吗?谢谢
在groupby
之前使用ffill
out = df.ffill().groupby(['C1','C2','C3'],as_index=False)['C4'].agg(' '.join)
Out[49]:
C1 C2 C3 C4
0 2021 4.0 1X "Firsttext" "continued" "stillContinued"
1 2021 5.0 1Y "secondtext" "continued"