python - 合并两列,忽略空单元格并添加分隔符

标签 python pandas dataframe concatenation

我需要将 3 中的列 12 与分隔符 , 组合起来,但忽略空单元格。 所以我有这个数据框:

         1     2
0  A, B, B     D
1           C, D
2  B, B, C  D, A

并且需要创建列3(所需的输出):

         1     2              3
0  A, B, B     D     A, B, B, D
1           C, D           C, D
2  B, B, C  D, A  B, B, C, D, A

正如您在这里看到的,空的 sell 被忽略,并且 , 在 df["3"] (B, B, C, D, A) 中分隔元素。

我尝试通过简单的串联来做到这一点,但没有成功。

如果我简单地连接 df["1"] + df["2"] 我将得到第一列的最后一个元素与最后一列的第一个元素组合 (BD, CD):

         1     2            3
0  A, B, B     D     A, B, BD
1           C, D         C, D
2  B, B, C  D, A  B, B, CD, A

如果添加 ", "(df["1"] + ", "+ df["2"]):

         1     2              3
0  A, B, B     D     A, B, B, D
1           C, D         , C, D
2  B, B, C  D, A  B, B, C, D, A

您将看到每个空单元格都替换为“,”并添加到 df["3"](示例 = , C, D,但我需要 C, D).

重现代码:

import pandas as pd
df = pd.DataFrame({"1":["A, B, B","","B, B, C"], "2":["D","C, D","D, A"]})
print(df)

最佳答案

使用str.strip可能从两侧删除 ,:

(df["1"] + ", " + df["2"]).str.strip(', ')

关于python - 合并两列,忽略空单元格并添加分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53781596/

相关文章:

python - 在 Windows 上安装 GDCM -- ImportError

python - Pypi的本地镜像,可以像Nexus一样按需下载包

python - 在 Python pandas 中有选择地将 float 转换为整数和小数

Python Pandas 数据阅读器不工作

python - 如何将相同类别的列置于 Pandas 数据框中的单个标题下?

python - 从 pandas DataFrame 中删除非整数且超出指定数值范围的列

python - 使用 Python pandas,我如何创建一个函数来计算代表比前一行更低值的行的比例?

python - 比较一列中的值是否在另一列 python pandas 中的两个值之间

python - 将对象树从文件读取到 Python 中

python - 面板回归给出错误 "exog does not have full column rank"