我有两个具有不同列数的数据透视表,我需要创建一个表,其值在单元格中以逗号分隔,但在第一个表中没有出现的单元格中放入0。
例如
Table 1
1 3 4
a t1a1 t1a3 t1a4
b t1b1 t1b3 t1b4
Table 2
1 2 3 4
a t2a1 t2a2 t2a3 t2a4
b t2b1 t2b2 t2b3 t2b4
我想:
1 2 3 4
a (t1a1,t2a1) (0,t2a2) (t1a3,t2a3) (t1a4,t2a4)
b (t1b1,t2b1) (0,t2b2) (t1b3,t2b3) (t1b4,t2b4)
功能
df = '(' + df1.astype(str) + ' , ' + df2.astype(str) + ')'
print (df)
返回
1 2 3 4
a (t1a1 , t2a1) NaN (t1a3 , t2a3) (t1a4 , t2a4)
b (t1b1 , t2b1) NaN (t1b3 , t2b3) (t1b4 , t2b4)
我使用pandas库在Python中工作。
答案 0 :(得分:1)
致电df.reindex
,你就可以了!
'(' + df1.reindex(columns=df2.columns, fill_value='0') + ', ' + df2 + ')'
1 2 3 4
a (t1a1, t2a1) (0, t2a2) (t1a3, t2a3) (t1a4, t2a4)
b (t1b1, t2b1) (0, t2b2) (t1b3, t2b3) (t1b4, t2b4)
请注意,您拥有的是字符串的列,而不是元组的列。有区别。