我有一个像这样的pandas数据框:
ID Hobbby Name
1 Travel Kevin
2 Photo Andrew
3 Travel Kevin
4 Cars NaN
5 Photo Andrew
6 Football NaN
.............. 1303 rows.
填写的姓名数量可能大于2。我希望最终将整个名称列填充n等于名称(或偶数行的情况下为+ 1)。我已经将可变数量的名称存储为名称总数。在上面的例子中它是2.我尝试过每个名字的过滤和计数,但是当名字的数量是动态的时候我不知道怎么做。 预期数据框:
ID Hobbby Name
1 Travel Kevin
2 Photo Andrew
3 Travel Kevin
4 Cars Kevin
5 Photo Andrew
6 Football Andrew
我尝试过:使用fillna将NaN替换为列名中的0。过滤列,最后得到一个只有na字段的数据帧,然后是len(df)得到nan的数量,并从这里创建2个数据库,每个数据库包含一半的df。我认为这种方法是完全错误的,因为我并不总是有2个名字。可能有2,3,4等(这是由字典给出的)
任何帮助高度赞赏
感谢。
答案 0 :(得分:0)
很难说,但我认为你需要ffill
df['Name'] = df['Name'].ffill()