Python 3.x 将多列合并为一列

Python 3.x 将多列合并为一列,python-3.x,pandas,Python 3.x,Pandas,我有一个如下所示的数据帧: col_1 col_2 col_3 col_4 col_5 col_6 234. 61. 71. 23 45k 61 462. 371. 73. 64 70k 66 我想合并第4列、第5列和第6列,使数据帧变成: col_1 col_2 col_3 new_col 234.

我有一个如下所示的数据帧:

col_1    col_2    col_3       col_4    col_5   col_6
  234.     61.     71.         23       45k     61
  462.     371.    73.         64       70k     66

我想合并第4列、第5列和第6列,使数据帧变成:

col_1    col_2    col_3             new_col 
 234.     61.     71.       col_4=23;col_5=45k;col_6=61
 462.     371.    73.       col_4=64;col_5=70k;col_6=66

我该怎么做?上面的数据帧就是一个例子。我有最后50列要合并,如new\u col。如有见解,将不胜感激。

将词汇理解与
f-string
s一起使用:

cols = ['col_4','col_5','col_6']

f = lambda x: ';'.join(f'{k}={v}' for k, v in x.items())
df['columns_combined'] = df[cols].apply(f, axis=1)

df = df.drop(cols, axis=1)

print (df)
   col_1  col_2  col_3  columns_combined
0  234.0   61.0   71.0  col_4=23;col_5=45k;col_6=61
1  462.0  371.0   73.0  col_4=64;col_5=70k;col_6=66
你可以这样做

df['new_col'] = df[df.columns[4:]].apply(
    lambda x: ';'.join(x.dropna().astype(str)),
    axis=1
)

但这并没有删除第4列、第5列和第6列。我希望这些列也从列表中删除dataframe@John-谢谢,添加了
df=df.drop(cols,axis=1)