私はこのようなマルチインデックスデータフレーム持っている:私は何をしたいかマルチインデックスデータフレームの列を引く方法は?
import pandas as pd
import numpy as np
df = pd.DataFrame({'ind1': list('aaaaaaaaabbbbbbbbb'),
'ind2': list('cccdddeeecccdddeee'),
'ind3': list(range(3))*6,
'val1': list(range(100, 118)),
'val2': list(range(70, 88))})
df_mult = df.set_index(['ind1', 'ind2', 'ind3'])
val1 val2
ind1 ind2 ind3
a c 0 100 70
1 101 71
2 102 72
d 0 103 73
1 104 74
2 105 75
e 0 106 76
1 107 77
2 108 78
b c 0 109 79
1 110 80
2 111 81
d 0 112 82
1 113 83
2 114 84
e 0 115 85
1 116 86
2 117 87
はそれぞれ、それぞれdf_mult.loc['a', ['c', 'd'], :]
とdf_mult.loc['b', ['c', 'd'], :]
に対応する値から、df_mult.loc['a', 'e', :]
とdf_mult.loc['b', 'e', :]
の値を減算することです。予想される結果は
val1 val2
ind1 ind2 ind3
a c 0 -6 -6
1 -6 -6
2 -6 -6
d 0 -3 -5
1 -3 -5
2 -3 -5
e 0 106 76
1 107 77
2 108 78
b c 0 -6 -6
1 -6 -6
2 -6 -6
d 0 -3 -3
1 -3 -3
2 -3 -3
e 0 115 85
1 116 86
2 117 87
は理想的には、このような何かが
df_mult.loc['a', ['c', 'd'], :].subtract(df_mult.loc['a', 'e', :])
をうまくいくだろうが、これは私にNaNs
の多くを提供します。
どうすればよいですか?
はこのPythonの-2.xのですか? –
@WillemVanOnsem:はい、そうです。 – Cleb