Reputation: 864
I have some DataFrames:
d = {'colA': [1, 2], 'colB': [3, 4]}
df = pd.DataFrame(data=d)
df2 = pd.DataFrame(data=d)
df3 = pd.DataFrame(data=d)
I want to return a list of columns containing the string 'A', e.g. for one DataFrame:
[column for column in df.columns if 'A' in column]
How can I do this for multiple DataFrames (e.g., df, df2, df3)?
The desired output in this example would be ['colA', 'colA', 'colA']
Upvotes: 0
Views: 52
Reputation: 8768
Here is a way:
l = [','.join(i.columns[i.columns.str.contains('A')]) for i in [df,df2,df3]]
Upvotes: 1
Reputation: 1093
You can create a function for that:
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
Usage:
res = find_char([df,df2,df3] , 'A')
print(res)
['colA', 'colA', 'colA']
Upvotes: 1