使用 pandas 将不同的列合并到数据框中的新列中

Combine different columns into a new column in a dataframe using pandas

我有一个非常大的数据框的示例数据框,如下所示。

import pandas as pd
import numpy as np

NaN = np.nan

data = {'Start_x':['Tom', NaN, NaN, NaN,NaN],
    'Start_y':[NaN, 'Nick', NaN, NaN, NaN],
    'Start_z':[NaN, NaN, 'Alison', NaN, NaN],
    'Start_a':[NaN, NaN, NaN, 'Mark',NaN],
    'Start_b':[NaN, NaN, NaN, NaN, 'Oliver'],
    'Sex': ['Male','Male','Female','Male','Male']}

df = pd.DataFrame(data)
df

我希望最终结果如下图所示。这 4 列必须合并为一个新列,但 'Sex' 列应该保持原样。

非常感谢任何帮助。谢谢!

一个选项可以是逐行回填 Start 列,然后取第一列:

df['New_Column'] = df.filter(like='Start').bfill(axis=1).iloc[:, 0]

df
  Start_x Start_y Start_z Start_a Start_b     Sex New_Column
0     Tom     NaN     NaN     NaN     NaN    Male        Tom
1     NaN    Nick     NaN     NaN     NaN    Male       Nick
2     NaN     NaN  Alison     NaN     NaN  Female     Alison
3     NaN     NaN     NaN    Mark     NaN    Male       Mark
4     NaN     NaN     NaN     NaN  Oliver    Male     Oliver