我通过使用带有此列结果的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
答案 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