熊猫数据框以添加新列并更改现有列的方向为索引

时间:2018-10-04 10:34:17

标签: pandas

我有一个dataframe对象pandas,我想在其中添加新列并将现有列更改为Index。下面是dataFrame的样子。

 >>> df
    {'FEQoS': [0.39, 15.24, 14.91], 'Tempus': [0.0, 0.0, 0.0], 'Voltus': [0.12, 3.22, 3.16], 'ICD PV': [0.01, 0.28, 0.28], 'CLS': [0.07, 1.96, 1.92]}
    >>> df1 = pd.DataFrame(df)
    >>> df1
       FEQoS  Tempus  Voltus  ICD PV   CLS
    0   0.39     0.0    0.12    0.01  0.07
    1  15.24     0.0    3.22    0.28  1.96
    2  14.91     0.0    3.16    0.28  1.92

我尝试过的不满足要求的事情:

>>> df1.stack().to_frame().T

我要广告的新列是:

cols  = ['-1 day','-2 days','-3 days']

所需的内容如下:

        -1 day  -2 days  -3 days
FEQoS     0.39    15.24    14.91
Tempus    0.00     0.00     0.00
Voltus    0.12     3.22     3.16
ICD PV    0.01     0.28     0.28
CLS       0.07     1.96     1.92

我努力理解使用以下想法:

df1 = pd.DataFrame.from_dict(df, orient='index')
df1.columns = ['-1 day','-2 days','-3 days']

1 个答案:

答案 0 :(得分:1)

您的第一个解决方案需要转置,并且可以添加index,它可以转置到列:

df1 = pd.DataFrame(df, index=['-1 day','-2 days','-3 days']).T

对于使用DataFrame.from_dict的解决方案,需要columns

  

东方:{'columns','index'},默认为'columns'

     

数据的“方向”。如果传递的dict的键应为结果DataFrame的列,请传递“ columns”(默认值)。否则,如果键应该是行,则传递'index'。

df1 = pd.DataFrame.from_dict(df, orient='index', columns = ['-1 day','-2 days','-3 days'])

print (df1)
        -1 day  -2 days  -3 days
FEQoS     0.39    15.24    14.91
Tempus    0.00     0.00     0.00
Voltus    0.12     3.22     3.16
ICD PV    0.01     0.28     0.28
CLS       0.07     1.96     1.92