Pandas:使用索引级别0的DataFrame分配多索引DataFrame

时间:2017-10-27 16:29:02

标签: python pandas

请为此问题建议更合适的标题

我有:两级索引DF(通过groupby创建):

                    clicks  yield
country report_date     
AD      2016-08-06    1      31
        2016-12-01    1      0
AE      2016-10-11    1      0
        2016-10-13    2      0

我需要:

因此,逐个国家/地区的数据,处理并将其反馈:

for country in set(DF.get_level_values(0)):
    DF_country  = process(DF.loc[country])
    DF[country] = DF_country

process将新行添加到DF_country

最后一个字符串中的

问题

ValueError:传递的项目数量错误2,展示位置意味着1

1 个答案:

答案 0 :(得分:1)

我只是修改了您的代码,我将process更改为add,基于我的理解过程是自定义函数吗?

for country in set(DF.index.get_level_values(0)): # change here
    DF_country  = DF.loc[country].add(1)
    DF.loc[country] = DF_country.values #and here
DF
Out[886]: 
                     clicks  yield
country report_date               
AD      2016-08-06        2     32
        2016-12-01        2      1
AE      2016-10-11        2      1
        2016-10-13        3      1

编辑:

l=[]

for country in set(DF.index.get_level_values(0)):
    DF1=DF.loc[country]
    DF1.loc['2016-01-01']=[1,2] #adding row here
    l.append(DF1)


pd.concat(l,axis=0,keys=set(DF.index.get_level_values(0)))

Out[923]: 
                clicks  yield
   report_date               
AE 2016-10-11        1      0
   2016-10-13        2      0
   2016-01-01        1      2
AD 2016-08-06        1     31
   2016-12-01        1      0
   2016-01-01        1      2