如何拆分/切片数据帧列中的值并将它们添加到新列中,后跟字符串?

问题描述 投票:0回答:1

我有一个数据框,其中包含“年份”列。我正在尝试使用该列的值来创建标题为“Decade”的新列的值,输出为字符串。

Year Decade
1972 1970s
1983 1980s
2002 2000s
2004 2000s

我尝试过:

import pandas as pd

df = pd.DataFrame({'Year':[1972,1983,2002,2004]})

df['Decade'] = str(df['Year'][0:3]) + '0s'
print(df.head())

相反,我得到以下输出:

   Year                                             Decade
0  1972  0    1972\n1    1983\n2    2002\nName: Year, d...
1  1983  0    1972\n1    1983\n2    2002\nName: Year, d...
2  2002  0    1972\n1    1983\n2    2002\nName: Year, d...
3  2004  0    1972\n1    1983\n2    2002\nName: Year, d...

如何让代码解析列中单元格的值而不是整个列,并在末尾添加字符串值?

python pandas dataframe
1个回答
0
投票

您必须使用

astype
转换为字符串,然后使用
str
访问器:

df['Decade'] = df['Year'].astype(str).str[0:3] + '0s'

或者,如果您有整数作为输入,可能会更有效,首先执行

floordiv
:

df['Decade'] = df['Year'].floordiv(10).astype(str) + '0s'

输出:

   Year Decade
0  1972  1970s
1  1983  1980s
2  2002  2000s
3  2004  2000s
© www.soinside.com 2019 - 2024. All rights reserved.