枢轴列的乘法

时间:2019-03-07 07:00:05

标签: python pandas

我通过使用带有此列结果的pd.pivot_table生成了两个合并的数据透视表:

newdash.columns = [('sum', 'rechbetrag', u'HSM-bedarf (bis 250\x80 netto)'),
 ('sum', 'RechnungBrutto', 'Instandhaltung'),
 ('sum', 'RechnungBrutto', 'Instandhaltung Versicherung'),
 ('sum', 'RechnungBrutto', 'Instandhaltung/Modernisierung'),
 ('sum', 'RechnungBrutto', 'Mieterwechsel'),
 ('sum', 'RechnungBrutto', u'Sch\xf6nheitsreparaturen'),
 ('sum', 'RechnungBrutto', 'All'),
 ('count_nonzero', 'auszugsdatum', 1L),
 ('count_nonzero', 'auszugsdatum', 2L),
 ('count_nonzero', 'auszugsdatum', 3L),
 ('count_nonzero', 'auszugsdatum', 4L),
 ('count_nonzero', 'auszugsdatum', 'All')]

此后,我想乘以或除以两列:

('count_nonzero', 'auszugsdatum', 'All') / ('sum', 'RechnungBrutto', 'All')

但是我没有找到有关如何使用这些列编写语法的信息。

类似:

newdash.divvalues = newdash.all / newdash.all

是并且无法工作。有人知道如何用熊猫获取数学专栏吗?

最诚挚的问候

OERB

1 个答案:

答案 0 :(得分:0)

通过元组选择列并分配给新列:

np.random.seed(2019)
tup1 = ('count_nonzero', 'auszugsdatum', 'All') 
tup2 = ('sum', 'RechnungBrutto', 'All')
tup3 = ('a', 'b', 'c')

#sample DataFrame
mux = pd.MultiIndex.from_tuples([tup1, tup2])
newdash = pd.DataFrame(np.random.randint(1,10, size=(10, 2)), columns=mux)

newdash[tup3] = newdash[tup1] / newdash[tup2]
print (newdash)
  count_nonzero            sum         a
   auszugsdatum RechnungBrutto         b
            All            All         c
0             9              3  3.000000
1             6              9  0.666667
2             7              9  0.777778
3             1              1  1.000000
4             8              9  0.888889
5             6              4  1.500000
6             1              3  0.333333
7             6              8  0.750000
8             9              6  1.500000
9             5              1  5.000000