连接列表中存在的数据框列,Python 3.6

SPy*_*SPy 1 python dataframe python-3.x pandas

我有 4 列的 Dataframe;我想连接出现在另一个列表中的列

df = pd.DataFrame([['A', 1, 'D', 4], ['B', 2, 'C', 3], ['C', 3, 'B', 2], ['D', 4, 'A', 1]], columns=['C1', 'C2', 'C3', 'C4'])

Con = ['C1', 'C2']

df['Con'] = df['C1'].astype(str) + '|' + df['C2'].astype(str)  # Manual
Run Code Online (Sandbox Code Playgroud)

但我的连接字段每次都会改变;那么如何连接输入列表“Con”中提到的多个列,我想从列表中获取列列表。

Hen*_*Yik 6

IIUC 您可以aggaxis=1和一起使用str.join

Con = ['C1', 'C2']

df["new"] = df[Con].astype(str).agg("|".join, axis=1)

print (df)

  C1  C2 C3  C4  new
0  A   1  D   4  A|1
1  B   2  C   3  B|2
2  C   3  B   2  C|3
3  D   4  A   1  D|4
Run Code Online (Sandbox Code Playgroud)