Python使用标头合并

时间:2017-03-21 14:51:47

标签: python-2.7 pandas

我希望带两个csvs(通过pandas读入),并将它们组合成一个3D DataFrame。

格式与此类似:

表1:

key1 key2 key3 value
x1   y1   z1   1   
x1   y2   z1   2
x1   y3   z1   3
x2   y1   z1   4
x2   y2   z1   5
x2   y3   z2   6
x3   y1   z2   7
x3   y2   z2   8
x3   y3   z2   9

表2:

key2 key3 value x1 x2 x3
y1   z1   0
y2   z1   1
y3   z1   2
y1   z2   3
y2   z2   4
y3   z2   5

我的目标是在表2中使用' x' header应该是table1中的值的查找(使用所有3个键)乘以table2中的值。

1 个答案:

答案 0 :(得分:2)

IIUC:

d1.set_index(
    ['key2', 'key3', 'key1']
).value.unstack().rename_axis(None, 1).reset_index()

  key2 key3   x1   x2   x3
0   y1   z1  1.0  4.0  NaN
1   y1   z2  NaN  NaN  7.0
2   y2   z1  2.0  5.0  NaN
3   y2   z2  NaN  NaN  8.0
4   y3   z1  3.0  NaN  NaN
5   y3   z2  NaN  6.0  9.0