python - Pandas 将所有列的值连接到一个新的列列表中

标签 python pandas concatenation

我正在尝试将所有列连接到一个新列中。连接的值应存储在列表中。

我的数据框:

df = pd.DataFrame({'A': ['1', '2', nan], 
                   'B': [nan, '5', nan], 
                   'C': ['7', nan, '9']})

期望的输出:

df:

A   B   C   concat_col
1   nan 7   [1,7]
2   5   nan [2,5]
nan nan 9   [9]

我尝试过:

df['concat'] = pd.Series(df.fillna('').values.tolist()).str.join(',')

我得到的输出:

A   B   C   concat_col
1   nan 7   1,,7
2   5   nan 2,5,,
nan nan 9   ,,9

最佳答案

以下代码应该可以工作:

df['concat_col']=df.apply(lambda row: row.dropna().tolist(), axis=1)

关于python - Pandas 将所有列的值连接到一个新的列列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52507272/

相关文章:

python - 将字符串转换为 f 字符串

python - tkinter 中的标签宽度

python - 在 pandas 中显示列为 False 的行

python - 删除市场数据中的重复项

python - 为 matplotlib 图分配随机颜色

python 打印与 __str__?

python - 如何使用 str.replace 清理列的每一行

python - 连接 RHCP 的名称、仪器和生日

powershell - 如何将解析路径与另一个目录连接

append - 连接 txt 文件内容和/或向所有内容添加中断