使用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
提前感谢您的帮助!
答案 0 :(得分:3)
您可以使用iloc
,reset_index
和rename
的第一行数据框中的设置列:
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)