首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何找到具有相似关键字的pandas数据帧索引?

如何找到具有相似关键字的pandas数据帧索引?
EN

Stack Overflow用户
提问于 2018-08-14 20:37:39
回答 2查看 182关注 0票数 0

我目前正在创建一个数据库,其中的表是从excel工作簿的特定列。该算法在一个目录中迭代,并将工作表保存为pandas数据帧,然后从那里选择列:

代码语言:javascript
复制
df1 = pd.read_excel(file, 'sheet1')

从那里我选择我需要的数据

代码语言:javascript
复制
def create_list(df1):
    i = 0
    list1 = [] 
    while isinstance(df1['foo-bar'][i], int):
        list1.append(df1['foo-bar'][i])
        i += 1
    return list1

我面临的问题是,有时列的名称不是“foo-bar”,而是“foo.bar”。例如,如果该列包含'foo‘,有什么方法可以选择它吗?还是选择'foo-bar‘或'foo.bar’的' Or‘运算符?

我知道应该有一种来自sql的LIKE方法,但我更喜欢用熊猫来做。

EN

回答 2

Stack Overflow用户

发布于 2018-08-14 20:58:21

您可以这样使用DataFrame.filter ...由于df1是一个数据帧:

代码语言:javascript
复制
    df1 = df1.filter(regex=("^foo.*"))
票数 0
EN

Stack Overflow用户

发布于 2018-08-14 21:01:17

代码语言:javascript
复制
import re

regex = re.compile("^foo.*")

columnsThatYouWant = []

for i in dataframe.columns:

    if bool(regex.match(i))):
        columnsThatYouWant.append(i)

然后,您可以使用其中的所有列。

这称为正则表达式。

^foo.*表示以foo开头,以任意字符(“.”)结尾的字符串。长度不限(“*”)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51841615

复制
相关文章

相似问题

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