【问题标题】:Replace null values using groupby.first() in pandas在 pandas 中使用 groupby.first() 替换空值
【发布时间】:2020-05-24 01:33:57
【问题描述】:

我有一个要求,我必须使用 groupby.first 元素替换 null(NaN) 值。

测试数据:

ID,Name,Cost
1,A,12
2,B,16
3,C,28
4,A,12
5,D,33
6,B,16
7,A,
8,C,28
9,C,
10,D,33
11,D,33
12,B,16
13,B,16

名称(项目)的成本始终保持不变。很少有成本字段未填充。我需要根据相应的 Name 对象成本填充那些缺失的 Cost 值。

我尝试了以下方法,但没有成功。有人可以帮忙吗?

dataset['Cost'] = (dataset.groupby('Name')).apply(lambda x: dataset.groupby('Name')['Cost'].first())

我正在使用熊猫。

【问题讨论】:

    标签: python-3.x pandas machine-learning


    【解决方案1】:

    试试fillnamap

    s = df.groupby('Name')['Cost'].first().to_dict()
    
    df['Cost'] = df['Cost'].fillna(df['Name'].map(s))
    

    print(df)
    
       ID Name  Cost
    0    1    A  12.0
    1    2    B  16.0
    2    3    C  28.0
    3    4    A  12.0
    4    5    D  33.0
    5    6    B  16.0
    6    7    A  12.0
    7    8    C  28.0
    8    9    C  28.0
    9   10    D  33.0
    10  11    D  33.0
    11  12    B  16.0
    12  13    B  16.0
    

    【讨论】:

    • 非常感谢@Datanovice
    猜你喜欢
    • 2022-01-03
    • 1970-01-01
    • 1970-01-01
    • 2021-06-14
    • 2017-04-04
    • 2017-10-21
    • 1970-01-01
    • 2021-01-19
    • 1970-01-01
    相关资源
    最近更新 更多