python pandas:在数据框中重新分配索引、列和值
python pandas: Reallocate index, columns and values within dataframe
我有一个如下所示的数据框。 x 是索引
y value
x
1 0 0.016175
1 1 0.017832
1 2 0.021536
1 3 0.024777
2 0 0.027594
2 1 0.029950
2 2 0.031890
2 3 0.033570
3 0 0.035070
3 1 0.036329
3 2 0.037297
3 3 0.037983
我想重新分配框架中的数据,使结果如下所示:
y 1(x) 2(x) 3(x)
0 0.016175 0.027594 0.035070
1 0.017832 0.029950 0.036329
2 0.021536 0.031890 0.037297
3 0.024777 0.033570 0.037983
原始索引应作为列标题放置,y 应为新索引。关于如何在 Python 中实现这一点的任何想法?
你可以先用reset_index
, then pivot
and last add_suffix
:
print (df.reset_index().pivot(index='y', columns='x', values='value').add_suffix('(x)'))
x 1(x) 2(x) 3(x)
y
0 0.016175 0.027594 0.035070
1 0.017832 0.029950 0.036329
2 0.021536 0.031890 0.037297
3 0.024777 0.033570 0.037983
最后如果需要删除列名添加 rename_axis
(pandas
0.18.0
中的新内容):
print (df.reset_index()
.pivot(index='y', columns='x', values='value')
.add_suffix('(x)')
.rename_axis(None, axis=1))
1(x) 2(x) 3(x)
y
0 0.016175 0.027594 0.035070
1 0.017832 0.029950 0.036329
2 0.021536 0.031890 0.037297
3 0.024777 0.033570 0.037983
我有一个如下所示的数据框。 x 是索引
y value
x
1 0 0.016175
1 1 0.017832
1 2 0.021536
1 3 0.024777
2 0 0.027594
2 1 0.029950
2 2 0.031890
2 3 0.033570
3 0 0.035070
3 1 0.036329
3 2 0.037297
3 3 0.037983
我想重新分配框架中的数据,使结果如下所示:
y 1(x) 2(x) 3(x)
0 0.016175 0.027594 0.035070
1 0.017832 0.029950 0.036329
2 0.021536 0.031890 0.037297
3 0.024777 0.033570 0.037983
原始索引应作为列标题放置,y 应为新索引。关于如何在 Python 中实现这一点的任何想法?
你可以先用reset_index
, then pivot
and last add_suffix
:
print (df.reset_index().pivot(index='y', columns='x', values='value').add_suffix('(x)'))
x 1(x) 2(x) 3(x)
y
0 0.016175 0.027594 0.035070
1 0.017832 0.029950 0.036329
2 0.021536 0.031890 0.037297
3 0.024777 0.033570 0.037983
最后如果需要删除列名添加 rename_axis
(pandas
0.18.0
中的新内容):
print (df.reset_index()
.pivot(index='y', columns='x', values='value')
.add_suffix('(x)')
.rename_axis(None, axis=1))
1(x) 2(x) 3(x)
y
0 0.016175 0.027594 0.035070
1 0.017832 0.029950 0.036329
2 0.021536 0.031890 0.037297
3 0.024777 0.033570 0.037983