如何使用类似的关键字查找pandas数据框索引?

问题描述 投票:0回答:2

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

df1 = pd.read_excel(file, 'sheet1')

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

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'?

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

python excel pandas
2个回答
0
投票
import re

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

columnsThatYouWant = []

for i in dataframe.columns:

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

然后你可以使用它里面的所有列。

这叫做正则表达式。

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


0
投票

你可以用这种方式使用DataFrame.filter ...因为df1是一个数据帧:

    df1 = df1.filter(regex=("^foo.*"))
© www.soinside.com 2019 - 2024. All rights reserved.