【发布时间】:2020-05-25 01:55:14
【问题描述】:
上图是我目前正在处理的数据的一部分,fips 列中的一些数据丢失了。我正在尝试使用其他列中的信息替换缺失值。我想编写一个代码,如果缺少 fips 值,那么它将尝试将县和州详细信息与其他行进行匹配,如果匹配,则使用该行中的 fips 代码来填充缺失的值。有可能吗?
【问题讨论】:
标签: python-3.x pandas dataframe missing-data data-cleaning
上图是我目前正在处理的数据的一部分,fips 列中的一些数据丢失了。我正在尝试使用其他列中的信息替换缺失值。我想编写一个代码,如果缺少 fips 值,那么它将尝试将县和州详细信息与其他行进行匹配,如果匹配,则使用该行中的 fips 代码来填充缺失的值。有可能吗?
【问题讨论】:
标签: python-3.x pandas dataframe missing-data data-cleaning
你可以试试这个吗?
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'])
df.groupby(['state', 'county']) 之后,每组州和县将只有一个值。代码所做的就是为 na 填充该值,您能否将结果发布到您得到不正确值的地方?也许发布您认为结果不正确的实例/组的示例数据将更有助于排除故障。还有你用的是什么版本的熊猫?