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)
我看到这对值有很多回答,但对列 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)