Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中替换NaN值_Python_Pandas_Dataframe_Missing Data_Imputation - Fatal编程技术网

如何在python中替换NaN值

如何在python中替换NaN值,python,pandas,dataframe,missing-data,imputation,Python,Pandas,Dataframe,Missing Data,Imputation,我的数据帧中有一个NaN值列表,我想用空字符串替换NaN值 到目前为止,我所尝试的都不起作用: df_conbid_N_1 = pd.read_csv("test-2019.csv",dtype=str, sep=';', encoding='utf-8') df_conbid_N_1['Excep_Test'] = df_conbid_N_1['Excep_Test'].replace("NaN","") 简单!你可以这样做 df_conbid_N_1 = pd.read_csv("test

我的数据帧中有一个NaN值列表,我想用空字符串替换NaN值

到目前为止,我所尝试的都不起作用:

df_conbid_N_1 = pd.read_csv("test-2019.csv",dtype=str, sep=';', encoding='utf-8')
df_conbid_N_1['Excep_Test'] = df_conbid_N_1['Excep_Test'].replace("NaN","")

简单!你可以这样做

df_conbid_N_1 = pd.read_csv("test-2019.csv",dtype=str, sep=';',encoding='utf-8').fillna("")

简单!你可以这样做

df_conbid_N_1 = pd.read_csv("test-2019.csv",dtype=str, sep=';',encoding='utf-8').fillna("")
我们有熊猫来填补缺失的值

让我们通过一个示例数据帧来了解一些用例:

df = pd.DataFrame({'col1':['John', np.nan, 'Anne'], 'col2':[np.nan, 3, 4]})

   col1  col2
0  John   NaN
1   NaN   3.0
2  Anne   4.0
如文档中所述,fillna接受以下填充值:

值:标量、dict、序列或数据帧

因此,我们可以替换为常量值,例如空字符串:

df.fillna('')

   col1 col2
0  John     
1          3
2  Anne    4
1
您还可以使用字典映射列替换。\u name:replace\u value:

或者您也可以替换为另一个pd.Series或pd.DataFrame:

这是非常有用的,因为它允许您使用从列中提取的一些统计信息(例如平均值或模式)来填充数据帧列中缺少的值。假设我们有:

df = pd.DataFrame(np.random.choice(np.r_[np.nan, np.arange(3)], (3,5)))
print(df)

     0    1    2    3    4
0  NaN  NaN  0.0  1.0  2.0
1  NaN  2.0  NaN  2.0  1.0
2  1.0  1.0  2.0  NaN  NaN
然后我们可以轻松地做到:

df.fillna(df.mean())

     0    1    2    3    4
0  1.0  1.5  0.0  1.0  2.0
1  1.0  2.0  1.0  2.0  1.0
2  1.0  1.0  2.0  1.5  1.5
我们有熊猫来填补缺失的值

让我们通过一个示例数据帧来了解一些用例:

df = pd.DataFrame({'col1':['John', np.nan, 'Anne'], 'col2':[np.nan, 3, 4]})

   col1  col2
0  John   NaN
1   NaN   3.0
2  Anne   4.0
如文档中所述,fillna接受以下填充值:

值:标量、dict、序列或数据帧

因此,我们可以替换为常量值,例如空字符串:

df.fillna('')

   col1 col2
0  John     
1          3
2  Anne    4
1
您还可以使用字典映射列替换。\u name:replace\u value:

或者您也可以替换为另一个pd.Series或pd.DataFrame:

这是非常有用的,因为它允许您使用从列中提取的一些统计信息(例如平均值或模式)来填充数据帧列中缺少的值。假设我们有:

df = pd.DataFrame(np.random.choice(np.r_[np.nan, np.arange(3)], (3,5)))
print(df)

     0    1    2    3    4
0  NaN  NaN  0.0  1.0  2.0
1  NaN  2.0  NaN  2.0  1.0
2  1.0  1.0  2.0  NaN  NaN
然后我们可以轻松地做到:

df.fillna(df.mean())

     0    1    2    3    4
0  1.0  1.5  0.0  1.0  2.0
1  1.0  2.0  1.0  2.0  1.0
2  1.0  1.0  2.0  1.5  1.5
使用fillna: 一个例子-

df = pd.DataFrame({'no': [1, 2, 3],
                    'Col1':['State','City','Town'],
                  'Col2':['abc', np.NaN, 'defg'],
                  'Col3':['Madhya Pradesh', 'VBI', 'KJI']})

df

   no   Col1    Col2    Col3
0   1   State   abc Madhya Pradesh
1   2   City    NaN VBI
2   3   Town    defg    KJI

df.Col2.fillna('', inplace=True)
df

    no  Col1    Col2    Col3
0   1   State   abc     Madhya Pradesh
1   2   City            VBI
2   3   Town    defg    KJI
使用fillna: 一个例子-

df = pd.DataFrame({'no': [1, 2, 3],
                    'Col1':['State','City','Town'],
                  'Col2':['abc', np.NaN, 'defg'],
                  'Col3':['Madhya Pradesh', 'VBI', 'KJI']})

df

   no   Col1    Col2    Col3
0   1   State   abc Madhya Pradesh
1   2   City    NaN VBI
2   3   Town    defg    KJI

df.Col2.fillna('', inplace=True)
df

    no  Col1    Col2    Col3
0   1   State   abc     Madhya Pradesh
1   2   City            VBI
2   3   Town    defg    KJI