请问有人可以帮我给多层索引的数据框添加一列吗?
我有以下的多层索引数据框:
price
sym i_date
MSFT 2017-04-04 100.78
2017-04-05 100.03
2017-04-06 100.76
2017-04-07 100.76
AAPL 2017-04-04 144.77
2017-04-05 144.02
2017-04-06 143.66
2017-04-07 143.66
我希望在价格列之后添加一列,该列为价格的自然对数:
price ln price
sym i_date
MSFT 2017-04-04 100.78 <ln (100.78)>
2017-04-05 100.03 <ln (100.03)>
2017-04-06 100.76 <ln (100.76)>
2017-04-07 100.76 <ln (100.76)>
AAPL 2017-04-04 144.77 <ln (144.77)>
2017-04-05 144.02 <ln (144.02)>
2017-04-06 143.66 <ln (143.66)>
2017-04-07 143.66 <ln (143.66)>
我尝试了下面的方法,但它并没有改变数据框。
for stk_sym in df.index.get_level_values('stk_sym').unique():
df.loc[stk_sym]['ln price'] = np.log(df.ix[stk_sym]['price'])