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
创建一个包含无用参数的列表,并通过读取文件来使用它欢迎使用堆栈溢出!只有代码的答案没有特别的帮助。请简要说明此代码如何解决此问题。