Python 向数据帧/序列添加索引名

Python 向数据帧/序列添加索引名,python,pandas,Python,Pandas,我不知道接下来该怎么做! 有人找到解决办法了吗 我有以下数据框架,其中测试、日期和产品作为索引。我想为所有测试和日期添加如下产品。例如,T3=T2+1 >>> df TEST DATE PRODUCTS A1 2014-02-28 T_01 7.9 T_1 8.1 T_2 8.6 201

我不知道接下来该怎么做! 有人找到解决办法了吗

我有以下数据框架,其中测试、日期和产品作为索引。我想为所有测试和日期添加如下产品。例如,T3=T2+1

>>> df
TEST      DATE        PRODUCTS
A1        2014-02-28  T_01        7.9
                      T_1         8.1
                      T_2         8.6
          2014-03-03  T_01        7.4
                      T_1         8.4
                      T_2         8.7
...
我想:

>>> df
TEST      DATE        PRODUCTS
A1        2014-02-28  T_01        7.9
                      T_1         8.1
                      T_2         8.7
                      T_3         9.6
          2014-03-03  T_01        7.4
                      T_1         8.4
                      T_2         8.7
                      T_3         9.7
...

我认为您可以先
unstack
it,生成
T_3
stack
将其重新生成

In [15]:

print df
                            0
TEST DATE       PRODUCTS     
A1   2014-02-28 T_01      7.9
                T_1       8.1
                T_2       8.6
     2014-03-03 T_01      7.4
                T_1       8.4
                T_2       8.7

[6 rows x 1 columns]
In [16]:

df2 = df.unstack()[0] #if the variable name is 0
df2['T_3']=df2['T_2']+1
df2.stack() #need to convert to a DataFrame, 
Out[16]:
TEST  DATE        PRODUCTS
A1    2014-02-28  T_01        7.9
                  T_1         8.1
                  T_2         8.6
                  T_3         9.6
      2014-03-03  T_01        7.4
                  T_1         8.4
                  T_2         8.7
                  T_3         9.7
dtype: float64
编辑 另一种方法是手动添加
T_3
级别:

In [37]:

df2=df.xs('T_2', level=2)+1
df2['PRODUCTS']='T_3'
df2.set_index('PRODUCTS', append=True, inplace=True)
df3=df.append(df2).sort_index()
In [38]:

print df3
                            0
TEST DATE       PRODUCTS     
A1   2014-02-28 T_01      7.9
                T_1       8.1
                T_2       8.6
                T_3       9.6
     2014-03-03 T_01      7.4
                T_1       8.4
                T_2       8.7
                T_3       9.7

[8 rows x 1 columns]

我不明白你在问什么。你是说你想要每个日期对应于你的产品的值的总和吗?不,我想要添加一个指数为T_3,等于T_2+1的产品。这适用于所有测试和日期索引。如果我理解正确,您想为每个T_2行添加T_3行吗?谢谢!我需要经过一个拆垛机。是因为我害怕记忆,我觉得记忆可能不会成为问题。你看,我的电脑的总观察次数没有变化(除了新生成的
T_3
),即使观察次数没有变化,当我使用堆栈/取消堆栈和concat函数时,我的内存有很多问题。好的,很高兴知道这一点。请参见编辑,它可能更方便记忆。