在Python中从日期和时间中只提取年份

2 人关注

我想在一个数据集中单独列出2020年的所有数据。日期的格式是这样的。06/10/2011 06:47:44 pm

我试着这样做,只是想看看我是否能把数据单列出来并进行统计,但它没有成功。

count = 0 
d2020 = data311['Created Date'][6][-13]
for d in d2020:
    if d == '2020':
        count += 1
print(count)

它运行但不返回任何东西,如果这有意义的话。我试过其他方法,但唯一的区别是它会返回0,这显然是不正确的。

其实我并不是要计算2020年的数据,我只是想只使用2020年的数据,以便能够在地图上绘制。

这就是数据集。https://data.cityofnewyork.us/Social-Services/311-Noise-Complaints/p5f6-bkga

2 个评论
也许你应该加上你的数据是什么。-只是一个建议
@TimothyChen问的是data911是什么格式? 它是一个pandas数据框架,还是一个字典等等。 另外,"创建数据 "是一个日期时间,还是一个字符串或其他项目? stackoverflow.com/help/minimal-reproducible-example 是一个提出好问题的好指南。
python
extract
user13451867
user13451867
发布于 2020-12-11
2 个回答
IoaTzimas
IoaTzimas
发布于 2020-12-11
0 人赞同

如果df是你的数据框架,'创建日期'是你的列,你可以通过这个选择2020年的行(关键是.str在过滤/boolean索引中的用法)。

newdf=df[df['Created Date'].str[6:10]=='2020']
    
谢谢!我能够用它本身得到结果,但它不能与我的其他代码一起工作。我必须玩一玩,看看我是否能让它一起运行。
blhsing
blhsing
发布于 2020-12-11
0 人赞同

如果你的日期总是像你的问题中给出的 06/10/2011 06:47:44 PM 那样格式化,你当然可以像你尝试的那样使用字符串的固定片断,只是用它代替。

data911['Created Date'][6][-13]

你应该使用切片机:

data911['Created Date'][6:-12]