[英]keyError when trying to drop a column in pandas.
I want to drop some rows from the data. 我想从数据中删除一些行。 I am using following code-
我正在使用以下代码-
import pandas as pd
import numpy as np
vle = pd.read_csv('/home/user/Documents/MOOC dataset original/vle.csv')
df = pd.DataFrame(vle)
df.dropna(subset = ['week_from'],axis=1,inplace = True)
df.dropna(subset = ['week_to'],axis=1,inplace = True)
df.to_csv('/home/user/Documents/MOOC dataset cleaned/studentRegistration.csv')
but its throwing following error- 但它引发以下错误-
raise KeyError(list(np.compress(check,subset)))
KeyError: [' week_from ']
what is going wrong? 怎么了?
I think need omit axis=1
, because default value is axis=0
for remove rows with NaNs (missing values) by dropna
by subset of columns for check NaN
s, also solution should be simplify to one line: 我认为需要省略
axis=1
,因为默认值是axis=0
用于通过dropna
按检查NaN
的dropna
集删除具有NaNs(缺失值)的行,所以解决方案也应简化为一行:
df.dropna(subset = ['week_from', 'week_to'], inplace = True)
Sample : 样品 :
df = pd.DataFrame({'A':list('abcdef'),
'week_from':[np.nan,5,4,5,5,4],
'week_to':[1,3,np.nan,7,1,0],
'E':[5,3,6,9,2,np.nan],
'F':list('aaabbb')})
print (df)
A week_from week_to E F
0 a NaN 1.0 5.0 a
1 b 5.0 3.0 3.0 a
2 c 4.0 NaN 6.0 a
3 d 5.0 7.0 9.0 b
4 e 5.0 1.0 2.0 b
5 f 4.0 0.0 NaN b
df.dropna(subset = ['week_from', 'week_to'], inplace = True)
print (df)
A week_from week_to E F
1 b 5.0 3.0 3.0 a
3 d 5.0 7.0 9.0 b
4 e 5.0 1.0 2.0 b
5 f 4.0 0.0 NaN b
If want remove columns by specifying rows for check NaN
s: 如果要通过为check
NaN
指定行来删除列:
df.dropna(subset = [2, 5], axis=1, inplace = True)
print (df)
A week_from F
0 a NaN a
1 b 5.0 a
2 c 4.0 a
3 d 5.0 b
4 e 5.0 b
5 f 4.0 b
But if need remove columns by names solution is different, need drop
: 但是如果需要按名称删除列的解决方案不同,则需要
drop
:
df.drop(['A','week_from'],axis=1, inplace = True)
print (df)
week_to E F
0 1.0 5.0 a
1 3.0 3.0 a
2 NaN 6.0 a
3 7.0 9.0 b
4 1.0 2.0 b
5 0.0 NaN b
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.