Pandas 使用str函数更改dataframe列标题
我正在尝试更改dataframe的现有列标题 我有以下标题:Pandas 使用str函数更改dataframe列标题,pandas,Pandas,我正在尝试更改dataframe的现有列标题 我有以下标题: headers = df.columns.values print(headers) ['Period Ending:' '201931/12' '201831/12' '201731/12' '201631/12'] 我想要这个: ['year' '2019' '2018' '2017' '2016'] 我的代码是: a = headers[1].str[:4] b = headers[2].str[:4] c = header
headers = df.columns.values
print(headers)
['Period Ending:' '201931/12' '201831/12' '201731/12' '201631/12']
我想要这个:
['year' '2019' '2018' '2017' '2016']
我的代码是:
a = headers[1].str[:4]
b = headers[2].str[:4]
c = headers[3].str[:4]
d = headers[4].str[:4]
headers = ['year', a, b, c, d]
df.columns = headers
print(df)
但它正在返回这个:
AttributeError: 'str' object has no attribute 'str'
有人知道这里出了什么问题吗
非常感谢 首先按
[1::
对所有不带首字母的列进行切片,然后按str[:4]
对前4个字母进行切片,转换为列表并在[year]
前面加上前缀:
df = pd.DataFrame(columns=['Period Ending:', '201931/12', '201831/12',
'201731/12', '201631/12'])
print (df)
Empty DataFrame
Columns: [Period Ending:, 201931/12, 201831/12, 201731/12, 201631/12]
Index: []
print (df.columns[1:])
Index(['201931/12', '201831/12', '201731/12', '201631/12'], dtype='object')
print (df.columns[1:].str[:4])
Index(['2019', '2018', '2017', '2016'], dtype='object')
df.columns = ['year'] + df.columns[1:].str[:4].tolist()
print (df)
Empty DataFrame
Columns: [year, 2019, 2018, 2017, 2016]
Index: []