2017-05-13 32 views
2

我有這樣的數據幀乘以多列與多索引列熊貓

col = pd.MultiIndex.from_arrays([['Jan', 'Jan', 'Jan', 'Cost'], 
           ['WK1', 'WK2', 'WK3', 'Cost']]) 
data = pd.DataFrame(np.random.randn(4, 4), columns=col) 
data 

相同的一列,我要乘的所有列一月成本,所以我嘗試了這樣的

data[['Jan']] * data[['Cost']] 

但它填補了我與Nan的價值。有沒有辦法我可以做到這一點?

回答

2

我認爲你需要刪除[]mul選擇DataFrame

print (data['one'].mul(data['two'])) 

或者:

print (data['one'] * data['two']) 

也可以使用功能xs

print (data.xs('one', axis=1, level=0) * data.xs('two', axis=1, level=0)) 
0

從我可以猜猜,你有麻煩了使用多級索引來訪問列。這是你想要做的嗎?

data[('one','a')] * data[('two','b')] 
Out[1065]: 
0 0.528834 
1 -0.287322 
2 -0.255244 
3 0.871213 
dtype: float64 
0

嗨,大家好我做了一個爲週期來回答我的問題

for col in data['Jan']: 
data[('Jan', col)] = data[('Jan',col)] * data[('Cost','Cost')] 

希望有人可以給我什麼我可以提高

反饋