首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Pandas列访问,列名包含空格

Pandas列访问,列名包含空格
EN

Stack Overflow用户
提问于 2012-12-07 12:49:28
回答 6查看 112.6K关注 0票数 59

如果我导入或创建一个不包含空格的pandas列,我可以这样访问它:

代码语言:javascript
复制
df1 = DataFrame({'key': ['b', 'b', 'a', 'c', 'a', 'a', 'b'],
                 'data1': range(7)})

df1.data1

它会为我返回那个序列。但是,如果该列的名称中包含空格,则无法通过该方法访问该列:

代码语言:javascript
复制
df2 = DataFrame({'key': ['a','b','d'],
                 'data 2': range(3)})

df2.data 2      # <--- not the droid i'm looking for.

我知道我可以使用.xs()访问它:

代码语言:javascript
复制
df2.xs('data 2', axis=1)

一定有别的办法。我已经疯狂地用谷歌搜索过了,想不出其他任何方法来谷歌它。我已经阅读了这里的所有96个条目,因此包含"column“、"string”和"pandas“的条目,并且找不到以前的答案。这是唯一的办法吗,还是有更好的办法?

谢谢!

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-12-07 15:36:51

我认为默认的方法是使用括号方法而不是点符号。

代码语言:javascript
复制
df1 = pandas.DataFrame({'key': ['b', 'b', 'a', 'c', 'a', 'a', 'b'],
             'dat a1': range(7)})

df1['dat a1']

其他方法,如将其公开为属性,更多是为了方便起见。

票数 55
EN

Stack Overflow用户

发布于 2015-05-29 02:42:30

旧帖子,但可能很有趣:一个想法(这是破坏性的,但如果你想要快速和肮脏的工作)是使用下划线重命名列:

代码语言:javascript
复制
df1.columns = [c.replace(' ', '_') for c in df1.columns]
票数 70
EN

Stack Overflow用户

发布于 2020-05-14 16:45:04

如果你喜欢给像assign这样的pandas方法提供间隔列名,你可以对你的输入进行字典。

代码语言:javascript
复制
df.assign(**{'space column': (lambda x: x['space column2'])})
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13757090

复制
相关文章

相似问题

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