繁体   English   中英

当两者在另一列中共享相等的值时,如何用同一列中的值填充数据框列中的 nan 值? 例如:Where 子句

[英]How to fill nan values in a data frame's column with a value from the same column when both share the equal value in another column? Ex: Where clause

我是 python 的初学者,在这里需要您的帮助来解决我的问题。 我有一个关于冠状病毒死亡率的数据集。 有 2 列 Neighborhood Name (Column Name: Neighborhood Name) 是基于 Postal Code Column (Column Name: NFS) 和基于 Neighborhood Name 列填充的邮政编码列。

我正在尝试在两列中填充 Nan 值。

这是我试图做的。

1 - 将数据输入 jupyter

 covid_df.head(5)

Output 是

covid_df.isnull().sum().to_frame()

Null 值

covid_sub_df = covid_df.loc[:, ['Neighbourhood Name', 'FSA']]
covid_sub_df

covid_sub_df_2 = covid_sub_df.drop_duplicates()
covid_sub_df_2

现在我尝试了这个

val = ""
for i, j in covid_df['Neighbourhood Name'], covid_df['FSA']:
    for k,l in covid_sub_df_2['Neighbourhood Name'], covid_sub_df_2['FSA']:
        if k == val and j == l:
            covid_df['Neighbourhood Name'] = covid_sub_df['Neighbourhood Name']
        if j == val and k == i:
            covid_df['FSA'] = covid_sub_df['FSA']

我收到此错误:

-------------------------------------------------- ------------------------- ValueError Traceback (最近一次调用最后一次) in 1 val = "" ----> 2 for i, j in covid_df['社区名称'],covid_df['FSA']:3 for k,l in covid_sub_df_2['社区名称'],covid_sub_df_2['FSA']:4 如果 k == val 和 j == l:5 covid_df ['社区名称'] = covid_sub_df['社区名称']

ValueError:要解包的值太多(预期为 2)

谢谢你们

那么你需要做的是摆脱以下错误?

ValueError:要解包的值太多(预期为 2)

这个问题并没有非常具体地提出,因为标题是如何填充 nan 值。 此外,如果可能,您应该尝试提供虚拟数据

但是,假设您想摆脱错误,您可能希望同时循环变量。 有一个称为zip()的 function 可以做到这一点。 因此,以下修改应该有望起作用:

val = ""
for i, j in zip(covid_df['Neighbourhood Name'], covid_df['FSA']):
    for k,l in zip(covid_sub_df_2['Neighbourhood Name'], covid_sub_df_2['FSA']):
        if k == val and j == l:
            covid_df['Neighbourhood Name'] = covid_sub_df['Neighbourhood Name']
        if j == val and k == i:
            covid_df['FSA'] = covid_sub_df['FSA']

目前尚不清楚您要使用哪些值填充 Nan 值。 一种选择是使用 pandas DataFrame 替换方法:

covid_df.replace({np.nan : new_value})

用该 new_value 替换每个 nan 值。 这是因为 pandas 建立在 numpy 之上,这是一个著名的 python 库,并将每个 Nan 值保存为 np.nan。 您应该导入 numpy 以使其以前可以工作:

import numpy as np

请注意,每个 Nan 值都将替换为 new_value 变量中的完全相同的值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM