Python: 如果dataframe有一个包含特定字符串的列名,将列附加到不同的dataframe

Python: If dataframe has a column name containing a certain string, append column to different dataframe

我看到这对值有很多回答,但对列 header 本身没有回答。

假设我有原始数据框,df1:

   axx  byy  czz
0    1    2    3
1    4    5    6

还有第二个数据框,df2

   dd  ee
0   7   8
1   9  10

如果数据框 1 包含字符串序列“yy”,将整列(包括值)附加到数据框 2,所以最后 df2 我会得到这个:

   dd  ee  byy
0   7   8    2
1   9  10    5

我该怎么做?我知道它有一些类似于 df1.columns.str.contains('yy') 的东西,但是这个 returns 是一个布尔值,我不知道如何使用它来复制和附加整个列。

您可以为此使用 filter

new_df = pd.concat([df2, df1.filter(like='yy')], axis=1)

输出:

>>> new_df
   dd  ee  byy
0   7   8    2
1   9  10    5

df.columns.str.contains,如您所想:

yy_cols = df1.columns[df1.columns.str.contains('yy')]
new_df = pd.concat([df2, df1[yy_cols]], axis=1)