从列标题中删除特殊字符

时间:2016-04-26 13:14:36

标签: python dictionary dataframe

我有一个数据框的字典(data_final)(健康,教育,经济......)。数据框包含来自一个xlsx文件的数据。在其中一个数据框(经济)中,列名称添加了括号和单引号。

data_final['economy'].columns = 
Index([                                ('Sr.No.',),
                                 ('DistrictName',),
                                  ('Agriculture',),
                            ('Forestry& Logging',),
                                      ('Fishing',),
                            ('Mining &Quarrying',),
                            ('ManufacturingMFG.',),
                               ('RegisteredMFG.',),
                                 ('Unregd. MFG.',),
                   ('Electricity,Gas & W.supply',),
                                 ('Construction',),
                    ('Trade,Hotels& Restaurants',),
                                     ('Railways',),
                      ('Transportby other means',),
                                      ('Storage',),
                                ('Communication',),
                           ('Banking &Insurance',),
       ('Real, Ownership of Dwel. B.Ser.& Legal',),
                         ('PublicAdministration',),
                                ('OtherServices',),
                                     ('TotalDDP',),
                           ('Population(In '00)',),
                        ('Per CapitaIncome(Rs.)',)],
      dtype='object')

我无法使用

引用任何列
data_final['economy']['('Construction',)']

给出错误 -

SyntaxError: invalid syntax

我尝试使用替换删除括号 -

data_final['economy'].columns = pd.DataFrame(data_final['economy'].columns).replace("(","",regex=True))

但是这不会删除列名中的错误。如何从列名中删除所有这些特殊字符?

2 个答案:

答案 0 :(得分:3)

您的列名称似乎正在导入/创建为tuples。如果您尝试引用它们删除括号,但在末尾留下逗号,会发生什么情况,如此

data_final['economy']['Construction',]

或甚至用括号

data_final['economy'][('Construction',)]

答案 1 :(得分:0)

语法错误应与行

相关
('Population(In '00)',),

该字符串包含单引号,通常标记字符串的结尾。如果你想在一个字符串中使用一个字符串,你必须用"将其包围为\'。产生如下行:

('Population(In \'00)',),

同样的问题适用于您的实际通话,您也必须在那里转义引号。