【问题标题】:How to replace missing values in data?如何替换数据中的缺失值?
【发布时间】:2020-05-25 01:55:14
【问题描述】:

上图是我目前正在处理的数据的一部分,fips 列中的一些数据丢失了。我正在尝试使用其他列中的信息替换缺失值。我想编写一个代码,如果缺少 fips 值,那么它将尝试将县和州详细信息与其他行进行匹配,如果匹配,则使用该行中的 fips 代码来填充缺失的值。有可能吗?

【问题讨论】:

    标签: python-3.x pandas dataframe missing-data data-cleaning


    【解决方案1】:

    你可以试试这个吗? df.groupby(['state', 'county'])['fips'].apply(lambda x : x.bfill().ffill()))

    我假设每个州 + 县的 fips 值是唯一的

    【讨论】:

    • 它替换了缺失的值,但其中一些不正确,因为它填充了上一行或下一行的值,而不匹配州和县。有没有其他办法?
    • 你能告诉我这是否返回任何数据吗? df.groupby(['state', 'county'])['fips'].filter(lambda x: (x.nunique() > 1).any())还要确保fips的数据类型是float,df['fips'] = pd.to_numeric(df['fips'])
    • fips的数据类型是float。提到的代码没有返回任何值。它显示 AttributeError: 'bool' object has no attribute 'any'。
    • 它仍然显示错误。 (TypeError: 'numpy.bool_' object is not iterable) 一对州和县具有唯一值。例如,所有 Snohomish + Washington 的 fips 代码为 53061,而 Spokane + Washington 的 fips 代码为 53063,依此类推。
    • 如果它是唯一的,那么在您执行df.groupby(['state', 'county']) 之后,每组州和县将只有一个值。代码所做的就是为 na 填充该值,您能否将结果发布到您得到不正确值的地方?也许发布您认为结果不正确的实例/组的示例数据将更有助于排除故障。还有你用的是什么版本的熊猫?
    猜你喜欢
    • 2018-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-18
    • 1970-01-01
    • 2020-11-14
    • 1970-01-01
    相关资源
    最近更新 更多