Reputation: 578
I defined a MultiIndex Dataframe as follows:
columns = pd.MultiIndex.from_product(
[assets, ['A', 'B', 'C']],
names=['asset', 'var']
)
res = pd.DataFrame(0, index=data.index, columns=columns)
However, I did not have success setting or updating single values of this Dataframe
. Any suggestion? Or should I move to use numpy
arrays - because of efficiency?
Upvotes: 0
Views: 90
Reputation: 863501
Use DataFrame.loc
with tuples for select MultiIndex columns and set new value like:
assets = ['X','Y']
columns = pd.MultiIndex.from_product(
[assets, ['A', 'B', 'C']],
names=['asset', 'var']
)
res = pd.DataFrame(0, index=range(3), columns=columns)
print (res)
asset X Y
var A B C A B C
0 0 0 0 0 0 0
1 0 0 0 0 0 0
2 0 0 0 0 0 0
res.loc[0, ('X','B')] = 100
print (res)
asset X Y
var A B C A B C
0 0 100 0 0 0 0
1 0 0 0 0 0 0
2 0 0 0 0 0 0
Upvotes: 1