我有一个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']
答案 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