Python 返回多个数据帧中字符串匹配的列列表

Python 返回多个数据帧中字符串匹配的列列表,python,pandas,Python,Pandas,我有一些数据帧: d = {'colA': [1, 2], 'colB': [3, 4]} df = pd.DataFrame(data=d) df2 = pd.DataFrame(data=d) df3 = pd.DataFrame(data=d) 我想返回包含字符串“a”的列列表,例如,对于一个数据帧: [column for column in df.columns if 'A' in column] 如何对多个数据帧(例如df、df2、df3)执行此操作 本例中所需的输出为['co

我有一些数据帧:

d = {'colA': [1, 2], 'colB': [3, 4]}

df = pd.DataFrame(data=d)
df2 = pd.DataFrame(data=d)
df3 = pd.DataFrame(data=d)
我想返回包含字符串“a”的列列表,例如,对于一个数据帧:

[column for column in df.columns if 'A' in column]
如何对多个数据帧(例如df、df2、df3)执行此操作


本例中所需的输出为['colA'、'colA'、'colA']

您可以为此创建一个函数:

def find_char(list_of_df , char):
    result = []
    for df in list_of_df:
        for c in df.columns:
            if char in c:
                result.append(c)
    return result
用法:

res = find_char([df,df2,df3] , 'A')
print(res)
['colA', 'colA', 'colA']

您可以为此创建一个函数:

def find_char(list_of_df , char):
    result = []
    for df in list_of_df:
        for c in df.columns:
            if char in c:
                result.append(c)
    return result
用法:

res = find_char([df,df2,df3] , 'A')
print(res)
['colA', 'colA', 'colA']
这里有一个方法:

l = [','.join(i.columns[i.columns.str.contains('A')]) for i in [df,df2,df3]]
这里有一个方法:

l = [','.join(i.columns[i.columns.str.contains('A')]) for i in [df,df2,df3]]