Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/pandas/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pandas “重命名列”功能在熊猫中不起作用_Pandas_Rename - Fatal编程技术网

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