Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.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 - Fatal编程技术网

Python 将所有选定的值替换为“NaN”

Python 将所有选定的值替换为“NaN”,python,pandas,Python,Pandas,我有一个df,看起来像: test1 test2 test3 test_Date test5 285685 0000105 0 2016-11-25 00:00:00 285685 0000106 0 2016-11-25 00:00:00 285685 0000107 1 2016-11-25 00:00:00 Null NULL #N/A #DIV/0! 我正在尝试填充如下内容: test1 test2 test3

我有一个df,看起来像:

test1   test2   test3   test_Date       test5
285685  0000105 0   2016-11-25 00:00:00 
285685  0000106 0   2016-11-25 00:00:00 
285685  0000107 1   2016-11-25 00:00:00 
Null    NULL    #N/A    #DIV/0!
我正在尝试填充如下内容:

test1   test2   test3   test_Date       test5
285685  0000105 NaN 2016-11-25 00:00:00 NaN
285685  0000106 NaN 2016-11-25 00:00:00 NaN
285685  0000107 1   2016-11-25 00:00:00 NaN
NaN     NaN     NaN     NaN        NaN  NaN
基本上尝试替换0、'NA'、'NULL'、'DIV/0!'、'#值'、'NaN'、'N/A'、'REF!'、'(空格)'、'0'、'Null'全部为NaN

使用以下代码,我无法执行此操作:

 f = dataframe.replace((0,'NA','NULL','#DIV/0!',' #VALUE','NaN','#N/A','#REF!',' ','0','Null'), np.nan).apply(lambda x: any(~x.isnull()))
 dataframe.loc[:,f]
我得到以下输出:

test1   test2   test3   test_Date
285685 0000105 0.0 2016-11-25 
285685 0000106 0.0 2016-11-25 
285685 0000107 1.0 2016-11-25 
Null   NaN        NaN NaT 
我丢失了一个名为test5的列,并且这些值也没有被替换。需要帮助


提前谢谢。:)

在要替换的值列表中使用方括号而不是圆括号,并省略结尾处的
。应用

>>> df
    test1  test2  test3            test_Date test5
0  285685  105.0    0.0  2016-11-25 00:00:00      
1  285685  106.0    0.0  2016-11-25 00:00:00      
2  285685  107.0    1.0  2016-11-25 00:00:00      
3    Null    NaN    NaN              #DIV/0!     

>>> df.replace([0,'NA','NULL','#DIV/0!',' #VALUE','NaN','#N/A','#REF!',' ','0','Null'], np.nan)
    test1  test2  test3            test_Date  test5
0  285685  105.0    NaN  2016-11-25 00:00:00    NaN
1  285685  106.0    NaN  2016-11-25 00:00:00    NaN
2  285685  107.0    1.0  2016-11-25 00:00:00    NaN
3     NaN    NaN    NaN                  NaN    NaN

在要替换的值列表中使用方括号而不是圆括号,并省略结尾处的
。应用

>>> df
    test1  test2  test3            test_Date test5
0  285685  105.0    0.0  2016-11-25 00:00:00      
1  285685  106.0    0.0  2016-11-25 00:00:00      
2  285685  107.0    1.0  2016-11-25 00:00:00      
3    Null    NaN    NaN              #DIV/0!     

>>> df.replace([0,'NA','NULL','#DIV/0!',' #VALUE','NaN','#N/A','#REF!',' ','0','Null'], np.nan)
    test1  test2  test3            test_Date  test5
0  285685  105.0    NaN  2016-11-25 00:00:00    NaN
1  285685  106.0    NaN  2016-11-25 00:00:00    NaN
2  285685  107.0    1.0  2016-11-25 00:00:00    NaN
3     NaN    NaN    NaN                  NaN    NaN

如果您是从csv文件中读取此内容,请使用
na_values
参数。见文件:


如果您是从csv文件中读取此内容,请使用
na_values
参数。见文件:


明亮的非常感谢……!!::)上帝保佑。。!!我真的很想知道哪里出了问题。:)如果你看一下,它说要替换的参数可以是列表、字符串、正则表达式等等,但是你最初用括号提供的是元组(这不是选项)。方括号指定的是
列表
类型。非常感谢……!!::)上帝保佑。。!!我真的很想知道哪里出了问题。:)如果你看一下,它说要替换的参数可以是列表、字符串、正则表达式等等,但是你最初用括号提供的是元组(这不是选项)。方括号指定的是
列表
类型。非常感谢。。!!这肯定会有帮助。现在我正在读excel。再次感谢。非常感谢。。!!这肯定会有帮助。现在我正在读excel。再次感谢。