我一直在使用一个包含一些日期值的数据框。这些日期值包含年,月和日,如1965-07-19。现在我尝试按年对它们进行分类,每十年一次。这意味着1960 - 1969在新列“年份”中被标记为1960年,等等。我的问题是我得到了错误**"'〈'****在'Timestamp'和'str'“**的示例之间不支持,而我已将其转换为date_time pandas Dataframe 。
我的df示例:
| 活动| Event.Date |
| --------------|--------------|
| 0|1961年10月24日|
| 1|1972年7月19日|
| 二|1989-08-02|
| 三|2022-12-26 2022-12-26 2022-12-26|
我想要的:
| 活动| Event.Date |年份|
| --------------|--------------|--------------|
| 0|1961年10月24日|六十年代|
| 1|1972年7月19日|七十年代|
| 二|1989-08-02|八十年代|
| 三|2022-12-26 2022-12-26 2022-12-26|2010年代|
我一直在做的代码是:
#To datetime
df['Event.Date'] = pd.to_datetime(df['Event.Date'])
cat_date = []
for dt in df["Event.Date"]:
if dt < '1960-01-01' : cat_lft.append("1950's")
elif dt < '1970-01-01': cat_lft.append("1960's")
elif dt < '1980-01-01': cat_lft.append("1970's")
elif dt < '1990-01-01': cat_lft.append("1980's")
elif dt < '2000-01-01': cat_lft.append("1990's")
elif dt < '2010-01-01': cat_lft.append("2000's")
elif dt < '2023-01-01': cat_lft.append("2010's")
else: cat_dt.append("nan")
# List as column (append)
df["Year"] = cat_date
有谁知道我做错了什么?
2条答案
按热度按时间sxissh061#
kqlmhetl2#
将列转换为
datetime
后,将年份四舍五入到十年,并设置结果的格式:输出: