Pandas “重命名列”功能在熊猫中不起作用
我有一个元组列的数据框架,我正试图重命名它 以下是Pandas “重命名列”功能在熊猫中不起作用,pandas,rename,Pandas,Rename,我有一个元组列的数据框架,我正试图重命名它 以下是.info(): 什么也没有发生(甚至没有错误消息)。事实上,我可以这样做: session_deciles.rename(columns={ ('VIDEO_USED','sum','sum') : 'total_sessions'},inplace=True) session_deciles.rename(columns={ ('FAKE COLUMN NAME','sum','sum') : 'total_sessions'},inpla
.info()
:
什么也没有发生(甚至没有错误消息)。事实上,我可以这样做:
session_deciles.rename(columns={ ('VIDEO_USED','sum','sum') : 'total_sessions'},inplace=True)
session_deciles.rename(columns={ ('FAKE COLUMN NAME','sum','sum') : 'total_sessions'},inplace=True)
我仍然不会收到错误消息
没有任何空格:
session_deciles.columns.tolist()
Out[47]:
[('session_deciles', '', ''),
('total_sessions', '', 'sum'),
('POLL', 'sum', 'sum'),
('PANELIST_COUNT', 'sum', 'sum'),
('VIDEO_USED', 'sum', 'sum')]
In [58]:
session_deciles.columns[4]
Out[58]:
('VIDEO_USED', 'sum', 'sum')
这很奇怪:
这个
什么都不做
session_deciles
Out[108]:
session_deciles total_sessions POLL PANELIST_COUNT VIDEO_USED
sum sum sum
sum sum sum sum
0 (0, 1] 1286 55 389 1133
1 (1, 2] 2056 102 784 1833
但这是:
session_deciles.rename(columns={session_deciles.columns[2]**[1]** : 'test_column'},inplace=True)
返回以下内容:
session_deciles total_sessions POLL PANELIST_COUNT VIDEO_USED
test_column test_column test_column
test_column test_column test_column
0 (0, 1] 1286 55 389 1133
1 (1, 2] 2056 102 784 1833
我无法重现您的错误,当我使用您的列名列表创建df并调用
rename
时,它可以工作:In[7]:df=pd.DataFrame(列=[('session_deciles','',''),('total_sessions',''sum'),('POLL','sum','sum'),('panelister_COUNT sum','sum','sum'),('VIDEO_USED','sum','sum'))In[8]:df rename(列)={('PANELIST_COUNT','sum','sum'):'new_col',inplace=True)df Out[8]:空数据帧列:[(会话十位数,),(会话总数,sum),(POLL,sum,sum),new_col,(VIDEO_USED,sum,sum)]索引:[
请参阅上文,了解在尝试传递列索引时的一些古怪行为。目前不支持重命名多索引(请参阅)@EdChum它对您有效的原因是因为它是元组,而不是多索引,因为您创建它的方式。我会做index=pd.MultiIndex.from_tuples(…)
在这种情况下组成数据帧。设置级别可以重命名,但不能仅重命名单个值,必须指定与级别相关的所有元素:
session_deciles.rename(columns={session_deciles.columns[2]**[1]** : 'test_column'},inplace=True)
session_deciles total_sessions POLL PANELIST_COUNT VIDEO_USED
test_column test_column test_column
test_column test_column test_column
0 (0, 1] 1286 55 389 1133
1 (1, 2] 2056 102 784 1833