串联/合并Pandas DataFrame中一列的行



我在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列的行合并为一行,直到C2C3列中出现新值。有什么有效的方法吗?谢谢

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"

最新更新