如何从数据框中的所有列名 / headers 中删除数字
How to remove numbers from all column names / headers in a dataframe
嗨,我有一个数据框,其列名以“2018”结尾
我需要从这些列名中删除年份,但遇到了一些麻烦。我还需要从这些列名称中去除前导和尾随空格。
我已经尝试过以下方法:
df.columns.str.replace('\d+',"") #to try and remove the numbers from the column names
df.columns = df.columns.str.strip('') #to try and get rid of the spaces
这些对数据帧没有任何作用。
我希望列名称从“Stock 2018”变为 "Stock"
但这并没有发生。感谢您的帮助!
您没有使用正确的方法重命名 pandas 中的列:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.rename.html
从文档来看,您似乎可以简单地执行以下操作:
df = df.rename(str.replace('\d+',""), axis='columns')
让我知道这是否适合你。
您只需要分配给 df.columns
以删除数字,也不要将任何内容传递给 str.strip()
以删除 leading/trailing 个空白字符。
df.columns=df.columns.str.replace('\d+','').str.strip()
您也可以尝试使用正则表达式..
示例数据帧:
>>> df = pd.DataFrame.from_dict({'Name04': ['Chris', 'Joe', 'Karn', 'Alina'], 'Age04': [14, 16, 18, 21], 'Weight04': [15, 21, 37, 45]})
>>> df
Age04 Name04 Weight04
0 14 Chris 15
1 16 Joe 21
2 18 Karn 37
3 21 Alina 45
结果使用 regex
:
>>> df.columns = df.columns.str.replace(r'\d+', '')
>>> df
Age Name Weight
0 14 Chris 15
1 16 Joe 21
2 18 Karn 37
3 21 Alina 45
嗨,我有一个数据框,其列名以“2018”结尾
我需要从这些列名中删除年份,但遇到了一些麻烦。我还需要从这些列名称中去除前导和尾随空格。
我已经尝试过以下方法:
df.columns.str.replace('\d+',"") #to try and remove the numbers from the column names
df.columns = df.columns.str.strip('') #to try and get rid of the spaces
这些对数据帧没有任何作用。
我希望列名称从“Stock 2018”变为 "Stock"
但这并没有发生。感谢您的帮助!
您没有使用正确的方法重命名 pandas 中的列:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.rename.html
从文档来看,您似乎可以简单地执行以下操作:
df = df.rename(str.replace('\d+',""), axis='columns')
让我知道这是否适合你。
您只需要分配给 df.columns
以删除数字,也不要将任何内容传递给 str.strip()
以删除 leading/trailing 个空白字符。
df.columns=df.columns.str.replace('\d+','').str.strip()
您也可以尝试使用正则表达式..
示例数据帧:
>>> df = pd.DataFrame.from_dict({'Name04': ['Chris', 'Joe', 'Karn', 'Alina'], 'Age04': [14, 16, 18, 21], 'Weight04': [15, 21, 37, 45]})
>>> df
Age04 Name04 Weight04
0 14 Chris 15
1 16 Joe 21
2 18 Karn 37
3 21 Alina 45
结果使用 regex
:
>>> df.columns = df.columns.str.replace(r'\d+', '')
>>> df
Age Name Weight
0 14 Chris 15
1 16 Joe 21
2 18 Karn 37
3 21 Alina 45