首页 > 解决方案 > 数据框列 str 替换为列表

问题描述

>>> df1
  % score  (C)  D; start name
0     one    0   0        foo
1     one    1   2        bar
2     two    2   4        foo
3   three    3   6        bar
4     two    4   8        foo
5     two    5  10        bar
6     one    6  12        foo
7   three    7  14        foo
>>> char1 = ["\s+" , "(" , ")" , "%" , ";"]
>>> char2 = ["_" , "" , "", "percent" , ""]

我有上面给出的数据框。我想通过将 char1 中给出的特殊字符替换为 char2 来重命名列名。即 char1[0] 应替换为 char[2] 。我更喜欢使用 df.columns.str.replace。这怎么能以pythonic方式完成?

提前致谢

标签: pythonpandasdataframe

解决方案


In [23]: char1 = [r"\s+" , r"\(" , r"\)", r"%" , r";"]

In [24]: df.columns = df.columns.to_series().replace(char1, char2, regex=True).tolist()

In [25]: df
Out[25]:
  percent_score  C   D start_name
0           one  0   0        foo
1           one  1   2        bar
2           two  2   4        foo
3         three  3   6        bar
4           two  4   8        foo
5           two  5  10        bar
6           one  6  12        foo
7         three  7  14        foo

推荐阅读