【问题标题】:Filling in a pandas column based on existing number of strings根据现有字符串数填充 pandas 列
【发布时间】:2017-04-11 21:19:17
【问题描述】:

我有一个看起来像这样的 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。我想最终将整个 Names 列填充为名称(在偶数行的情况下为 +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 等(这是由字典给出的)

非常感谢任何帮助

谢谢。

【问题讨论】:

  • 您可以发布您尝试过的代码和您期望的输出吗?

标签: python sorting pandas filter


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2021-11-24
    • 1970-01-01
    • 1970-01-01
    • 2017-12-05
    • 1970-01-01
    • 2018-03-15
    • 1970-01-01
    • 2022-11-30
    • 2022-01-02
    相关资源
    最近更新 更多