我想从

['$a', '$b', '$c', '$d', '$e']

to

['a', 'b', 'c', 'd', 'e']

当前回答

一个简单而“有趣”(和蟒蛇?)的解决方案:

df.rename(columns={x: x.replace('$', '') for x in df.columns})

哪里:

df = pd.DataFrame(columns=['$a', '$b', '$c', '$d', '$e'])

步骤:

获取DataFrame的列作为列表:

df.columns

在DataFrames中重命名的方法:

df.rename()

属性以指定要重命名列:

columns={}

在字典中,您需要指定要重命名的列(在每个键中)以及它们将获得的新名称(每个值)

{'old_col_name': 'new_col_name', ...}

由于您的更改遵循一种模式,为了删除每列中的$字符,我们可以使用字典理解:

{x: x.replace('$', '') for x in df.columns}

其他回答

假设您可以使用正则表达式,则此解决方案无需使用正则表达式进行手动编码:

import pandas as pd
import re

srch = re.compile(r"\w+")

data = pd.read_csv("CSV_FILE.csv")
cols = data.columns
new_cols = list(map(lambda v:v.group(), (list(map(srch.search, cols)))))
data.columns = new_cols

重命名Pandas中的列是一项简单的任务。

df.rename(columns={'$a': 'a', '$b': 'b', '$c': 'c', '$d': 'd', '$e': 'e'}, inplace=True)

另一种替换原始列标签的方法是从原始列标签中删除不需要的字符(此处为“$”)。

这可以通过在df.columns上运行for循环并将剥离的列附加到df.column来完成。

相反,我们可以通过使用下面的列表理解在一个语句中巧妙地做到这一点:

df.columns = [col.strip('$') for col in df.columns]

(Python中的strip方法会从字符串的开头和结尾剥离给定的字符。)

如果您只想删除“$”符号,请使用以下代码

df.columns = pd.Series(df.columns.str.replace("$", ""))
# This way it will work
import pandas as pd

# Define a dictionary 
rankings = {'test': ['a'],
        'odi': ['E'],
        't20': ['P']}

# Convert the dictionary into DataFrame
rankings_pd = pd.DataFrame(rankings)

# Before renaming the columns
print(rankings_pd)

rankings_pd.rename(columns = {'test':'TEST'}, inplace = True)