Python Pandas将数据帧列向下移动到行中(重置列上的索引?)

时间:2016-03-04 00:04:22

标签: python pandas dataframe python-3.4

如何删除/重置列轴以将数据向下移动,导致列标题类似于[0, 1, 2, 3, 4, 5],然后将列标题设置为df[5]值?我一直重置行轴的索引,但从来没有必要对列进行操作。

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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