当值为NaN时合并数据帧行

时间:2019-08-28 05:25:06

标签: python-3.x pandas

我想按照下面的示例将数据框展平。

我有下一个数据框:

    file name   format  location
0   movie1.mp4  NaN     NaN
1   NaN         NaN     D:/mymovies
2   NaN         mp4     NaN

,我想将其转换为:

    file name   format  location
0   movie1.mp4  mp4 D:/mymovies

有什么主意吗?谢谢!

1 个答案:

答案 0 :(得分:0)

我相信,如果第一个非缺失值是组的第一个值,然后将GroupBy.first汇总为每个组的第一个非缺失值,则可以对第一列使用正向填充:

df = df.groupby(df['file name'].ffill()).first().reset_index(drop=True)
print (df)
    file name format     location
0  movie1.mp4    mp4  D:/mymovies

详细信息

print (df['file name'].ffill())
0    movie1.mp4
1    movie1.mp4
2    movie1.mp4
Name: file name, dtype: object

如果第一列是索引:

df = df.groupby(df.index.to_series().ffill()).first().reset_index()
print (df)
    file name format     location
0  movie1.mp4    mp4  D:/mymovies