在每个数据框对应的位置上合并两个数据框的值字符串。

3

我正在寻找Python代码,以将两个具有相同列名、维度和数据类型(字符串)的数据框的值字符串粘贴在一起。

我想通过将DF1和DF2中每个元素粘贴在一起来创建一个新的数据框,这些元素位于每个数据框内对应的位置,并且每个字符串之间有","分隔符。

输入数据框(DF1和DF2)和期望输出

等效的R代码将使用矩阵:matrix(paste(DF1,DF2, sep=";"),nrow = nrow(DF1), dimnames=dimnames(DF1))

是否有一种方法可以用Python实现这个功能?看起来应该很简单,但提前感谢!

2个回答

2
使用 pd.concat
out = pd.concat([df1.stack(), df2.stack()], axis=1) \
        .apply(lambda x: ','.join(x), axis=1) \
        .unstack()

输出:

>>> out
     A    B    C
0  z,f  x,h  c,j
1  v,t  b,y  n,u
2  a,u  s,i  d,o

@Delagator123。这解决了你的问题吗? - Corralien
谢谢!这个很有效。虽然@TMBailey的df1 +“,”+ df2似乎是最简单的方法。 - Delagator123
如果您喜欢这种方法,请随意接受他的答案。 - Corralien

2
您可以直接将列相加,然后使用 pd.concat 将它们收集到一个数据框中。
import pandas as pd

df1 = pd.DataFrame({"a": ["big", "small"], "b": ["good", "bad"]})
df2 = pd.DataFrame({"a": ["shrimp", "lobster"], "b": ["will", "omen"]})

pd.concat([df1[col] + "," + df2[col] for col in df1],
          axis="columns")

#                a          b
# 0     big,shrimp  good,will
# 1  small,lobster   bad,omen

编辑: 更好的方法是,你可以直接添加完整的数据框。
df1 + "," + df2
#                a          b
# 0     big,shrimp  good,will
# 1  small,lobster   bad,omen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接