假设我有两个数据框:pd1
和pd2
pd1 =
A B C
1 hello foo hello
2 foo bar hello
3 world bar world
4 world bar world
和
pd2 =
A B C
1 8 0 3
2 8 5 2
3 4 7 0
4 4 1 3
并说我想做一些事情,比如使用以下结果创建第三个数据框
A B C
1 hello;8 foo;0 hello;3
2 foo;8 bar;5 hello;2
3 world;4 bar;7 world;2
4 world;4 bar;1 world;0
虽然我可以遍历每个位置,索引两个数据帧并将结果连接到第三个数据帧,但我想知道我是否可以做得更好。
阅读applymap
我想知道是否有类似的方法来定义和应用处理数据帧对的运算符。例如,对于上面的问题,我可以定义以下运算符:
def f(x,y):
return str(x) + ';' + str(y)
其中f(x,y)
是一个按元素操作的函数。
这个想法可以扩展到多个数据帧(超过2个)。 Pandas中有什么东西支持这种多数据帧操作符的定义吗?
答案 0 :(得分:1)
您已经可以执行此操作,只需使用applymap进行字符串化; '+'连接
In [14]: df1.applymap(str) + df2.applymap(lambda x: ';%s' % x)
Out[14]:
A
0 0;0
1 1;2
2 2;4
3 3;6
4 4;8
问题效率不是很高,也许你应该创建你想要的列然后to_csv与sep为';'?