使用 pandas 合并列

Merging columns using pandas

我正在尝试使用 pandas 合并多项选择题列,这样我就可以对它们进行操作。我的问题的一个例子是:

  C1 C2 C3
0  A    A
1    B  B
2    C  C
3  D    D

数据当前显示为 C1C2,但我需要将其合并到 1 列中,如 C3 中所示。

假设空单元格中为 NaN,一个选项是 bfill 第一列并复制它:

df['C3'] = df[['C1', 'C2']].bfill(axis=1)['C1']

这种方式可以扩展到任意数量的初始列。

输出:

    C1   C2 C3
0    A  NaN  A
1  NaN    B  B
2  NaN    C  C
3    D  NaN  D

你可以试试 fillna

df['C3'] = df['C1'].fillna(df['C2'])
df
Out[483]: 
    C1   C2 C3
0    A  NaN  A
1  NaN    B  B
2  NaN    C  C
3    D  NaN  D

你也可以使用combine_first:

df['C3'] = df['C1'].combine_first(df['C2'])
print(df)

# Output
    C1   C2 C3
0    A  NaN  A
1  NaN    B  B
2  NaN    C  C
3    D  NaN  D

如果您的单元格包含空字符串而不是空值,请将它们临时替换为 NaN:

df['C3'] = df['C1'].replace('', np.nan).combine_first(df['C2'])
print(df)

# Output
  C1 C2 C3
0  A     A
1     B  B
2     C  C
3  D     D