熊猫:将索引更改为列

时间:2016-01-27 06:52:33

标签: python pandas

使用Pandas,如何将索引更改为列,如下面的示例表中所示?

我尝试了df.reset_index()的各种变体,但无济于事。

DF

                    0         1         2
       Year      Tractors    Barns    Bales
       1960         1         10       1000
       1961         2         11       1100
       1962         3         12       1200

df_new

                    Year      Tractors    Barns    Bales
        0           1960         1         10       1000
        1           1961         2         11       1100
        2           1962         3         12       1200

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

您可以使用ilocreset_indexrename的第一行数据框中的设置列:

print df
            0     1     2
Year Tractors Barns Bales
1960        1    10  1000
1961        2    11  1100
1962        3    12  1200

print df.iloc[0]
1    Tractors
2       Barns
3       Bales
Name: Year, dtype: object

df.columns = df.iloc[0]
df.index.name = None
df.columns.name = None

df = df[1:].reset_index().rename(columns={'index':'Year'})
print df
   Year Tractors Barns Bales
0  1960        1    10  1000
1  1961        2    11  1100
2  1962        3    12  1200

答案 1 :(得分:0)

我的猜测是你一直在键入df.reset_index()并观察输出,但df保持不变。如果输入:

df = df.reset_index()

你可能会得到你想要的结果。

P.S。列名称顶部的整数 - 您是将这些整数放在那里,还是来自一组分层索引的列?如果您需要删除df中的整数,可以键入:

df.columns = df.columns.get_level_values(1)