Python 3.x 如何使用&x201C;na#u值=''”;pd.read.csv()函数中的选项?

Python 3.x 如何使用&x201C;na#u值=''”;pd.read.csv()函数中的选项?,python-3.x,pandas,Python 3.x,Pandas,我试图在pd.read.csv()函数中找到带有na_值='?'选项的操作 这样我就可以找到包含“?”值的行列表,然后删除该值 如果要删除数据帧中包含“?”的行,可以尝试使用: 假设您有df: import pandas as pd df = pd.read_csv('test.csv') A B 0 Maths 4/13/2017 1 Physics 4/15/2016 2 English 4/16/2016 3 tes

我试图在
pd.read.csv()
函数中找到带有
na_值='?'
选项的操作


这样我就可以找到包含“?”值的行列表,然后删除该值

如果要删除数据帧中包含“?”的行,可以尝试使用:

假设您有
df

import pandas as pd
df = pd.read_csv('test.csv')
    A           B
0   Maths       4/13/2017
1   Physics     4/15/2016
2   English     4/16/2016
3   test?dsfsa  9/15/2016
df

import pandas as pd
df = pd.read_csv('test.csv')
    A           B
0   Maths       4/13/2017
1   Physics     4/15/2016
2   English     4/16/2016
3   test?dsfsa  9/15/2016
检查列A是否包含“?”以生成新的
df1

df1 = df[df.A.str.contains("\?")==False]
df1
将是:

    A       B
0   Maths   4/13/2017
1   Physics 4/15/2016
2   English 4/16/2016
这将为您提供新的
df1
,其中不包含“?”

示例:

import pandas as pd
from pandas.compat import StringIO

#test data
temp=u"""id,col1,col2,col3
1,13?,15,14
1,13,15,?
1,12,15,13
2,?,15,?
2,18,15,13
2,18?,15,13"""
#in real data use
#df = pd.read_csv('test.csv')
df = pd.read_csv(StringIO(temp))
print (df)
   id col1  col2 col3
0   1  13?    15   14
1   1   13    15    ?
2   1   12    15   13
3   2    ?    15    ?
4   2   18    15   13
5   2  18?    15   13
如果要删除带有
的值,这些值是单独的,或者子字符串需要由创建的掩码,然后检查每行是否至少有一个
True

如果只想单独更换
只需比较值:

print (df.astype(str) == '?')
      id   col1   col2   col3
0  False  False  False  False
1  False  False  False   True
2  False  False  False  False
3  False   True  False   True
4  False  False  False  False
5  False  False  False  False

m = ~(df.astype(str) == '?').any(axis=1)
print (m)
0     True
1    False
2     True
3    False
4     True
5     True
dtype: bool

df = df[m]
print (df)
   id col1  col2 col3
0   1  13?    15   14
2   1   12    15   13
4   2   18    15   13
5   2  18?    15   13

它将所有
替换为
NaN
s是必需的参数
na\u值
,如果需要,请删除带有
NaN
s的所有行:

import pandas as pd
from pandas.compat import StringIO

#test data
temp=u"""id,col1,col2,col3
1,13?,15,14
1,13,15,?
1,12,15,13
2,?,15,?
2,18,15,13
2,18?,15,13"""
#in real data use
#df = pd.read_csv('test.csv', na_values='?')
df = pd.read_csv(StringIO(temp), na_values='?')
print (df)
   id col1  col2  col3
0   1  13?    15  14.0
1   1   13    15   NaN
2   1   12    15  13.0
3   2  NaN    15   NaN
4   2   18    15  13.0
5   2  18?    15  13.0


df = df.dropna()
print (df)
   id col1  col2  col3
0   1  13?    15  14.0
2   1   12    15  13.0
4   2   18    15  13.0
5   2  18?    15  13.0

创建一个包含无用参数的列表,并通过读取文件来使用它

欢迎使用堆栈溢出!只有代码的答案没有特别的帮助。请简要说明此代码如何解决此问题。