2016-03-04 118 views
2

如何删除/重置列轴以移动数据导致列标题变为[0, 1, 2, 3, 4, 5]然后将列标题设置为df[5]值?我一直重置行轴的索引,但从来没有必要对列进行操作。Python Pandas Shift Dataframe Column Down into Row(列上的重置索引?)

df = pd.DataFrame({'very_low': ['High', 'Low', 'Middle', 'Low'], '0.2': [0.10000000000000001, 0.050000000000000003, 0.14999999999999999, 0.080000000000000002], '0.1': [0.080000000000000002, 0.059999999999999998, 0.10000000000000001, 0.080000000000000002], '0.4': [0.90000000000000002, 0.33000000000000002, 0.29999999999999999, 0.23999999999999999], '0': [0.080000000000000002, 0.059999999999999998, 0.10000000000000001, 0.080000000000000002], '0.3': [0.23999999999999999, 0.25, 0.65000000000000002, 0.97999999999999998]}) 

     0 0.1 0.2 0.3 0.4 very_low 
0 0.08 0.08 0.10 0.24 0.90  High 
1 0.06 0.06 0.05 0.25 0.33  Low 
2 0.10 0.10 0.15 0.65 0.30 Middle 
3 0.08 0.08 0.08 0.98 0.24  Low 

回答

1

如果我的理解是否正确,这样的事情?

df2 = pd.concat([pd.DataFrame(df.columns).T, pd.DataFrame(df.values)], 
       ignore_index=True).iloc[:, :-1] 

df2.columns = [df.columns[-1]] + df.iloc[:, -1].tolist() 

>>> df2 
    very_low High Low Middle Low 
0  0 0.1 0.2 0.3 0.4 
1  0.08 0.08 0.1 0.24 0.9 
2  0.06 0.06 0.05 0.25 0.33 
3  0.1 0.1 0.15 0.65 0.3 
4  0.08 0.08 0.08 0.98 0.24 
+0

感谢您的帮助!你的答案始终是点亮的。你真的了解你的东西。 – Jarad

0

我想这是你想要什么:

tdf = df.T 
tdf.columns = tdf.iloc[5] 
tdf.drop(tdf.tail(1).index,inplace=True) 

>>> tdf 
very_low High Low Middle Low 
0   0.08 0.06 0.1 0.08 
0.1  0.08 0.06 0.1 0.08 
0.2  0.1 0.05 0.15 0.08 
0.3  0.24 0.25 0.65 0.98 
0.4  0.9 0.33 0.3 0.24 
相关问题