5
我试图找出重置索引时是否有重命名熊猫列的方法。我在文档中看到,如果只有一列,那么可以使用“name”参数设置重置索引的列名,但我很好奇是否有办法为多列执行此操作。如何使用熊猫重命名重置索引上的多列
例如:
df1 = pd.DataFrame({
'A' : ['a1', 'a1', 'a2', 'a3'],
'B' : ['b1', 'b2', 'b3', 'b4'],
'D1' : [1,0,0,0],
'D2' : [0,1,1,0],
'D3' : [0,0,1,1],
})
df1.set_index(['B','A']).stack().reset_index()
结果留给你:
Out[82]:
B A level_2 0
0 b1 a1 D1 1
1 b1 a1 D2 0
2 b1 a1 D3 0
3 b2 a1 D1 0
4 b2 a1 D2 1
你可以这样做:
df1.set_index(['B','A']).stack().reset_index(name='my_col')
为了设置最后一列,但我的名字想知道是否有办法使用参数来设置'level_2'列的名字。
是来到我的脑海里的第一件事就是尝试:
df1.set_index(['B','A']).stack().reset_index(name=['my_col2','my_col'])
然而,没有工作,所以找身边的另一种方式。我意识到我总是可以重新命名下一行的列,但希望有一条更清晰的方法可以在一行中完成。
谢谢! 山姆
我不认为这是可能的,你看,'reset_index()'在你的代码实际上是http://pandas.pydata.org/pandas-docs/stable /generated/pandas.Series.reset_index.html,所以你只有一列。 你可以做的是设置你的系列的索引列的名称,然后它们将保留为DataFrame的列的名称 – 2014-12-05 20:41:10