根据现有字符串数填写pandas列

时间:2016-11-28 07:53:22

标签: python sorting pandas filter

我有一个像这样的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等(这是由字典给出的)

任何帮助高度赞赏

感谢。

1 个答案:

答案 0 :(得分:0)

很难说,但我认为你需要ffill

df['Name'] = df['Name'].ffill()