首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用正则表达式从dataframe中选择列

如何使用正则表达式从dataframe中选择列
EN

Stack Overflow用户
提问于 2015-06-13 00:55:19
回答 5查看 69K关注 0票数 91

我在python pandas中有一个数据帧。数据帧的结构如下:

代码语言:javascript
复制
   a    b    c    d1   d2   d3 
   10   14   12   44  45    78

我想选择以d开头的列。在python中有没有简单的方法来实现这一点。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-06-13 01:04:16

您可以这样使用DataFrame.filter

代码语言:javascript
复制
import pandas as pd

df = pd.DataFrame(np.array([[2,4,4],[4,3,3],[5,9,1]]),columns=['d','t','didi'])
>>
   d  t  didi
0  2  4     4
1  4  3     3
2  5  9     1

df.filter(regex=("d.*"))

>>
   d  didi
0  2     4
1  4     3
2  5     1

其思想是按regex选择列

票数 166
EN

Stack Overflow用户

发布于 2015-06-13 01:12:38

使用select

代码语言:javascript
复制
import pandas as pd

df = pd.DataFrame([[10, 14, 12, 44, 45, 78]], columns=['a', 'b', 'c', 'd1', 'd2', 'd3'])

df.select(lambda col: col.startswith('d'), axis=1)

结果:

代码语言:javascript
复制
   d1  d2  d3
0  44  45  78

如果您不习惯使用正则表达式,这是一个很好的解决方案。

票数 23
EN

Stack Overflow用户

发布于 2021-06-23 00:57:29

您可以对索引(本例中为列)使用startswith方法:

代码语言:javascript
复制
df.loc[:, df.columns.str.startswith('d')]

或使用正则表达式的match

代码语言:javascript
复制
df.loc[:, df.columns.str.match('^d')]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30808430

复制
相关文章

相似问题

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