我在数据框中有许多列:
df = pd.DataFrame({'Date':[1990],'State Income of Alabama':[1],
'State Income of Washington':[2],
'State Income of Arizona':[3]})
所有标头具有相同数目的字符串,并且所有标头具有完全相同的字符串,且州名之间只有一个空格。
我想取出字符串'State Income of',并将状态保留为该集合的新标题,以便它们全部读为:
Alabama Washington Arizona
1 2 3
我尝试过在Python中使用替换列函数,例如:
df.columns = df.columns.str.replace('State Income of ', '')
但这不能给我想要的输出。
答案 0 :(得分:3)
这是另一种解决方案,不到位:
df.rename(columns=lambda x: x.split()[-1])
或就位:
df.rename(columns=lambda x: x.split()[-1], inplace = True)
答案 1 :(得分:2)
您的方式对我有用,但还有其他选择:
一种方法是拆分列名并使用最后一个单词:
q.w = q1w * q2w - q1x * q2x - q1y * q2y - q1z * q2z;
q.x = q1w * q2x + q1x * q2w + q1y * q2z - q1z * q2y;
q.y = q1w * q2y + q1y * q2w - q1x * q2z + q1z * q2x;
q.z = q1w * q2z + q1z * q2w + q1x * q2y - q1y * q2x;
答案 2 :(得分:0)
您可以为此使用re
模块:
>>> import pandas as pd
>>> df = pd.DataFrame({'State Income of Alabama':[1],
... 'State Income of Washington':[2],
... 'State Income of Arizona':[3]})
>>>
>>> import re
>>> df.columns = [re.sub('State Income of ', '', col) for col in df]
>>> df
Alabama Washington Arizona
0 1 2 3
re.sub('State Income of', '', col)
将用字符串col
中的空字符串(有效地为“ nothing”)替换任何出现的“ State Income of”。