2017-07-14 257 views
1

假設我有兩個dataframes:熊貓合併兩個dataframes具有相同的結構

x1 x2 x3 
y1 a1 a1 a1  
y2 b1 b1 b1  
y3 c1 c1 c1 

    x1 x2 x3 
y1 a2 a2 a2  
y2 b2 b2 b2  
y3 c2 c2 c2   

這是從同一個地方在得到以下數據框中每個元素的兩個值的列表,最簡單的方法原始數據框?

x1  x2  x3 
y1 [a1,a2] [a1,a2] [a1,a2]  
y2 [b1,b2] [b1,b2] [b1,b2]  
y3 [c1,c2] [c1,c2] [c1,c2] 

回答

3

使用applymap

In [953]: df1.applymap(lambda x: [x]) + df2.applymap(lambda x: [x]) 
Out[953]: 
      x1  x2  x3 
y1 [a1, a2] [a1, a2] [a1, a2] 
y2 [b1, b2] [b1, b2] [b1, b2] 
y3 [c1, c2] [c1, c2] [c1, c2] 
+0

謝謝,這似乎更靈活,可以應用於'reduce'。 – natsuapo

4

一(出許多)可能的解決方案:

In [63]: d1.astype(str).add(',').add(d2.astype(str)).apply(lambda x: x.str.split(',')) 
Out[63]: 
      x1  x2  x3 
y1 [a1, a2] [a1, a2] [a1, a2] 
y2 [b1, b2] [b1, b2] [b1, b2] 
y3 [c1, c2] [c1, c2] [c1, c2] 
+0

謝謝您的答覆。它可以處理「int」或「float」類型嗎? – natsuapo

+0

@natsuapo,我已經更新了我的答案 - 它會生成字符串列表 – MaxU

相關問題