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

2024-04-26 12:19:36 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我有以下数据帧,其中TEST、DATE和PRODUCTS作为索引。我想添加一个产品如下所有测试和日期。例如,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
...

Tags: 数据testdfdate产品a1productst3
1条回答
网友
1楼 · 发布于 2024-04-26 12:19:36

我想你可以先unstack它,再生成T_3stack它。你知道吗

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]

相关问题 更多 >