Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.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 尝试在中删除列时出现keyError。_Python_Pandas_Numpy - Fatal编程技术网

Python 尝试在中删除列时出现keyError。

Python 尝试在中删除列时出现keyError。,python,pandas,numpy,Python,Pandas,Numpy,我想从数据中删除一些行。我正在使用以下代码- 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(

我想从数据中删除一些行。我正在使用以下代码-

    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')
但它有以下错误-

      raise KeyError(list(np.compress(check,subset)))
      KeyError: [' week_from ']      

出了什么问题?

我认为需要忽略轴=1,因为默认值是
轴=0
,用于按列子集删除带有NaN(缺少值)的行,以检查
NaN
s,解决方案也应简化为一行:

df.dropna(subset = ['week_from', 'week_to'], inplace = True)
样本

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
如果要通过为check
NaN
s指定行来删除列:

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

但如果需要按名称删除列解决方案不同,则需要:


我有点困惑-需要按名称删除列或按
NaN
s按列指定行吗?这个问题与
机器学习
无关-请不要垃圾邮件标签(已删除)
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