首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除未命名的列pandas数据帧

删除未命名的列pandas数据帧
EN

Stack Overflow用户
提问于 2020-02-28 03:58:32
回答 2查看 1K关注 0票数 0

我是一名学生,我有一个问题,我不知道如何解决它。我有这样的csv数据:

代码语言:javascript
复制
"","","","","","","","","",""
"","report","","","","","","","",""
"","bla1","bla2","","","","bla3","","",""
"","bla4","bla5","","","","","bla6","",""
"","bla6","bla7","bla8","","1","2","3","4","5"
"","bla9","bla10","bla11","","6","7","8","9","10"
"","bla12","bla13","bla14","","11","12","13","14","15"
"","","","","","","","","",""

读取csv的代码如下:

代码语言:javascript
复制
SMT = pd.read_csv(file.csv, usecols=(5,6,7,8), skiprows=(1,2,3), nrows=(3))
SMT.fillna(0, inplace=True)

SMT打印输出:

代码语言:javascript
复制
  Unnamed: 5 Unnamed: 6 Unnamed: 7 Unnamed: 8
0          1          2          3          4
1          6          7          8          9
2         11         12         13         14

预期输出:

代码语言:javascript
复制
 1          2          3          4
 6          7          8          9
11         12         13         14

我已经尝试过skiprows=(0,1,2,3)了,但它将是这样的:

代码语言:javascript
复制
           1          2          3          4
0          6          7          8          9
1         11         12         13         14
2          0          0          0          0

我已经尝试让index=Flase SMT = pd.read_csv(file.csv,index=False, usecols=(5,6,7,8), skiprows=(1,2,3), nrows=(3))index_col=0/None/Falseis不工作了,上一次我是这样尝试的:

代码语言:javascript
复制
df1 = SMT.loc[:, ~SMT.columns.str.contains('^Unnamed')]

我得到了

Empty DataFrame columns: [] Index: [0, 1, 2]

我只想摆脱无名的:5~无名的: 8,怎样才能正确摆脱这个无名的东西呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-28 04:05:09

“未命名”只是说,熊猫不知道如何命名列。所以这些只是名字。您可以在read_csv中像这样设置名称

代码语言:javascript
复制
pd.read_csv("test.csv", usecols=(5,6,7,8), skiprows=3, nrows=3, header=0, names=["c1", "c2", "c3", "c4"])

输出:

代码语言:javascript
复制
   c1  c2  c3  c4
0   1   2   3   4
1   6   7   8   9
2  11  12  13  14

您必须设置header=0,以便pandas知道这通常是头文件。或者设置skiprows=4

票数 1
EN

Stack Overflow用户

发布于 2020-02-28 04:05:02

只需分配新的列名:

代码语言:javascript
复制
 df = pd.read_csv('temp.csv', usecols=[5,6,7,8], skiprows=[1,2,3], nrows=3)
 df.columns = range(1, 1+len(df.columns))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60440882

复制
相关文章

相似问题

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