返回多个DataFrames中字符串匹配的列的列表



我有一些数据帧:

d = {'colA': [1, 2], 'colB': [3, 4]}
df = pd.DataFrame(data=d)
df2 = pd.DataFrame(data=d)
df3 = pd.DataFrame(data=d)

我想返回一个包含字符串"a"的列列表,例如,对于一个DataFrame:

[column for column in df.columns if 'A' in column]

如何对多个数据帧(例如,df、df2、df3(执行此操作?

本例中所需的输出为[‘colA’,‘colA‘,‘colA’]

这里有一种方法:

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

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

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

最新更新