我有一个名为en_bal_df的数据帧,其结构如下:
nrg_bal,siec,unit,geo\time 2018 ... 1991 1990
0 AFC,BIOE,GWH,AL 3129.617 ... 4221.944 4221.944
1 AFC,BIOE,GWH,AT 55305.885 ... 27905.111 25744.633
2 AFC,BIOE,GWH,BA 13379.486 ... : :
3 AFC,BIOE,GWH,BE 27929.856 ... 4108.185 4034.103
4 AFC,BIOE,GWH,BG 16312.768 ... 1333.333 2005.833
第一列称为nrg\U bal、siec、unit、geo\time。我想使用逗号作为分隔符将其拆分为四列
我试过了
en_bal_df[['nrg_bal','siec','unit','NUTS-0']]=en_bal_df['nrg_bal,siec,unit,geo\time'].str.split(',',expand=True)
但我得到了以下错误代码:
Traceback (most recent call last):
File "C:\Users\sand_jv\Desktop\Eurostat Datasets\untitled10.py", line 27, in <module>
en_bal_df[['nrg_bal','siec','unit','NUTS-0']]=en_bal_df['nrg_bal,siec,unit,geo\time'].str.split(',',expand=True)
File "C:\Users\sand_jv\Anaconda3\envs\myenv\lib\site-packages\pandas\core\frame.py", line 2902, in __getitem__
indexer = self.columns.get_loc(key)
File "C:\Users\sand_jv\Anaconda3\envs\myenv\lib\site-packages\pandas\core\indexes\base.py", line 2897, in get_loc
raise KeyError(key) from err
KeyError: 'nrg_bal,siec,unit,geo\time'
然后我尝试用
en_bal_df_test=en_bal_df.rename(columns={'nrg_bal,siec,unit,geo\time':'info'},inplace=True)
我没有收到任何错误,但什么也没发生,列仍然有相同的名称。我认为这可能与名称中的反斜杠有关(nrg_bal、siec、unit、geo\time)。有没有办法解决这两个问题?提前谢谢
谢谢你,马辛!我认为问题出在“地理\时间”部分,这是欧盟统计局数据集编译器选择的一个不幸的名称。正如您所提到的,我尝试添加第二个反斜杠,现在拆分和重命名列都起作用了。我稍微修改了您的代码,以防其他人需要它:
输出为:
Pandas不作为列名中的制表符\t进行分析
请尝试打印列名。根据以下情况,在访问列名时必须使用
\t
或\\t
:nrg_bal,siec,单位,地理时间
nrg_bal,siec,单位,地理输入法
相关问题 更多 >
编程相关推荐