pandas multi index

时间:2017-11-01 14:14:56

标签: python pandas

我在下面的代码中遇到了一个错误。如果我的类别列表的第二个元素是大写字母,那么我的数据框'change_1_month_df'的结果值是NaN。如果我使用小写字母,则正确插入随机数。有任何想法吗?感谢

import pandas as pd
import numpy as np

dates = ['d1','d2']
categories = ['a','b']
sub_categories = ['f','g']
my_index = pd.MultiIndex.from_product([categories,sub_categories])
change_1_month_df = pd.DataFrame(index=my_index,columns=dates)

for a in categories:
    for d in dates:
        print a,d
        if a == 'W':
            None
        else:
            change_1_month_df.ix[a].ix['f'][d] = np.random.randn(1)
            change_1_month_df.ix[a].ix['g'][d] = np.random.randn(1)

change_1_month_df

1 个答案:

答案 0 :(得分:4)

你能试试吗?使用.loc选择多索引

for a in categories:
    for d in dates:

        if a == 'W':
            None
        else:
            change_1_month_df.loc[(a, 'f'), d]=np.random.randn(1)[0]
            change_1_month_df.loc[(a, 'g'), d]=np.random.randn(1)[0]

change_1_month_df