嗨我有一个带有多级列的pandas df:
sample = pd.DataFrame(pd.np.random.randn(10,2),columns=['a','b'])
df = pd.concat([samp], keys=['p4'],axis=1)
df
输出
p4
a b
0 0.621016 0.920448
1 0.329792 -0.674688
我知道我可以像这样添加一个列c:
df[('p4','c')] =df.p4.a - df.p4.b
df
输出:
p4
a b c
0 0.621016 0.920448 -0.299432
添加了列' c'将正确的值提升到我想要的水平。
我的问题是如何在不输入列的情况下将大量这些列添加到大型数据框中?例如,我有专栏(p5,[' a',' b'] ...(p6,[' a',' b&#39 ;])我正在考虑for循环或列表理解,但我正在努力弄清楚如何添加大量的计算列' c'
答案 0 :(得分:2)
在我看来,循环是最易读和可维护的方式。例如:
for i in range(4, 11):
df[('p'+str(i), 'c')] = df[('p'+str(i), 'a')] - df[('p'+str(i), 'b')]
答案 1 :(得分:0)
我正在使用MultiIndex
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<p class="darkmodetext" id="darkModeIcon">Darkmode <span id="darkModeOn">ON</span><span>/</span><span id="darkModeOff">OFF</span></p>