我有一个数据框和一个行选择功能。

import pandas as pd
df = pd.DataFrame({'A':[1,2,3],'B':[5,6,7]})
def select_f(row):
    return row['a']


问题是我不想更改列名(保持大写)并运行以下函数

for _, row in df.iterrows:
    if select_f(row) >2:
        print row['B']

最佳答案

您可以将df.filter与正则表达式一起使用:

In [246]: df.filter(regex=re.compile('^a$', re.I))
Out[246]:
   A
0  1
1  2
2  3


为了您的目的,您可以使用:

def select_f(row):
    return row.filter(regex=re.compile('^a$', re.I)).iloc[0]

关于python - Pandas 数据框列的大小写不敏感匹配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45860916/

10-16 22:55