首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python & Pandas:无法删除列

Python & Pandas:无法删除列
EN

Stack Overflow用户
提问于 2015-08-13 13:16:48
回答 1查看 604关注 0票数 2

以下是我的部分数据:

代码语言:javascript
复制
USAF,   NCDC,  Date,     HrMn, I, Type,  QCP,  Dir, Q, I, Spd,   Q, 
034820,99999,19490801,0000,4,  SAO,    ,270,1,N,  5.7,1,
034820,99999,19490801,0100,4,  SAO,    ,270,1,N,  4.6,1,
034820,99999,19490801,0200,4,  SAO,    ,270,1,N,  4.6,1,
034820,99999,19490801,0300,4,  SAO,    ,270,1,N,  4.6,1,
034820,99999,19490801,0400,4,  SAO,    ,270,1,N,  6.7,1,
034820,99999,19490801,0500,4,  SAO,    ,270,1,N,  8.7,1,
034820,99999,19490801,0600,4,  SAO,    ,270,1,N,  8.2,1,
034820,99999,19490801,0700,4,  SAO,    ,270,1,N,  8.2,1,

我尝试删除数据,但是它报告了一些列不存在。

代码语言:javascript
复制
ipath= "C:\Users\Administrator\Desktop\科研风速数据资料\Marham\\marham.txt"
uipath = unicode(ipath , "utf8")
file2 = open(uipath)
df = pd.read_csv(uipath,header=0)
# I can drop USAF, but unable to drop NCDC, I, Q, 
df.drop(['USAF', 'NCDC'], 1,inplace=True)
df.describe()

这些报告:

代码语言:javascript
复制
ValueError: labels ['NCDC'] not contained in axis

我的密码怎么了?我过去经常很好地使用df.drop(['a', 'b', 'c'], 1,inplace=True)

更新:

代码语言:javascript
复制
df.columns.tolist()
['USAF',
 '   NCDC',
 '  Date',
 '     HrMn',
 ' I',
 ' Type',
 '  QCP',
 '  Dir',
 ' Q',
 ' I.1',
 ' Spd',
 '   Q',
 ' ']
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-13 13:29:14

read_csv的默认分隔符是逗号,但您的数据包含空格,这在标题和数据中引入了前导空格,如果您传递skipinitialspace=True,那么它导入的很好:

代码语言:javascript
复制
In [106]:
import io
import pandas as pd
t="""USAF,   NCDC,  Date,     HrMn, I, Type,  QCP,  Dir, Q, I, Spd,   Q, 
034820,99999,19490801,0000,4,  SAO,    ,270,1,N,  5.7,1,
034820,99999,19490801,0100,4,  SAO,    ,270,1,N,  4.6,1,
034820,99999,19490801,0200,4,  SAO,    ,270,1,N,  4.6,1,
034820,99999,19490801,0300,4,  SAO,    ,270,1,N,  4.6,1,
034820,99999,19490801,0400,4,  SAO,    ,270,1,N,  6.7,1,
034820,99999,19490801,0500,4,  SAO,    ,270,1,N,  8.7,1,
034820,99999,19490801,0600,4,  SAO,    ,270,1,N,  8.2,1,
034820,99999,19490801,0700,4,  SAO,    ,270,1,N,  8.2,1,"""
df = pd.read_csv(io.StringIO(t), skipinitialspace=True)
df

Out[106]:
    USAF   NCDC      Date  HrMn  I Type  QCP  Dir  Q I.1  Spd  Q.1  \
0  34820  99999  19490801     0  4  SAO  NaN  270  1   N  5.7    1   
1  34820  99999  19490801   100  4  SAO  NaN  270  1   N  4.6    1   
2  34820  99999  19490801   200  4  SAO  NaN  270  1   N  4.6    1   
3  34820  99999  19490801   300  4  SAO  NaN  270  1   N  4.6    1   
4  34820  99999  19490801   400  4  SAO  NaN  270  1   N  6.7    1   
5  34820  99999  19490801   500  4  SAO  NaN  270  1   N  8.7    1   
6  34820  99999  19490801   600  4  SAO  NaN  270  1   N  8.2    1   
7  34820  99999  19490801   700  4  SAO  NaN  270  1   N  8.2    1   

   Unnamed: 12  
0          NaN  
1          NaN  
2          NaN  
3          NaN  
4          NaN  
5          NaN  
6          NaN  
7          NaN

然后,您可以删除列:

代码语言:javascript
复制
In [108]:
df.drop(['USAF', 'NCDC'], 1,inplace=True)
df.info()

<class 'pandas.core.frame.DataFrame'>
Int64Index: 8 entries, 0 to 7
Data columns (total 11 columns):
Date           8 non-null int64
HrMn           8 non-null int64
I              8 non-null int64
Type           8 non-null object
QCP            0 non-null float64
Dir            8 non-null int64
Q              8 non-null int64
I.1            8 non-null object
Spd            8 non-null float64
Q.1            8 non-null int64
Unnamed: 12    0 non-null float64
dtypes: float64(3), int64(6), object(2)
memory usage: 768.0+ bytes
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31989381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档