我是编程和Python3/Pandas的新手。
我已经写了一个csv文件到一个dF,并且正在使用pandas和numpty。dF包含一系列列,A、B、C等,以及它们的数千行数据(不全是数字的)。我想从数据框中删除“未知”的所有实例。
我试过了:
dF = dF[dF'A‘!=’未知‘]
但它给了我一条错误消息。
发布于 2017-05-27 12:37:10
您需要按boolean indexing过滤数据
df = pd.DataFrame({'A':['a','unknown','b'],
'B':pd.date_range('2017-01-01', periods=3),
'C':[7,8,9],
'D':[1,3,5]})
print (df)
A B C D
0 a 2017-01-01 7 1
1 unknown 2017-01-02 8 3
2 b 2017-01-03 9 5df1 = df[(df['A'] != 'unknown') & (df['B'] > '2017-01-02')]
print (df1)
A B C D
2 b 2017-01-03 9 5但是如果以后需要处理数据:
df1['C'] = df1['C'] + 1
print (df1)正在尝试对DataFrame中切片的副本设置一个值。尝试使用值,col_indexer = .locrow_indexer
问题是,如果您稍后修改了df1中的值,您会发现修改不会传播回原始数据(df),并且Pandas会发出警告。
解决方案是copy
df1 = df[(df['A'] != 'unknown') & (df['B'] > '2017-01-02')].copy()
print (df1)
A B C D
2 b 2017-01-03 9 5
df1['C'] = df1['C'] + 1
print (df1)
A B C D
2 b 2017-01-03 10 5发布于 2017-05-27 07:13:03
你是说这个?
df = df[df['A'] != 'unknown']或者,您可以使用query()
df = df.query('A != "unknown"')https://stackoverflow.com/questions/44211248
复制相似问题