我想将日期时间序列转换为季节,例如第3、4、5个月,我想用2(春季)替换它们;对于6、7、8个月,我想用3(夏季)等替换它们。
所以,我有这个系列
id
1 2011-08-20
2 2011-08-23
3 2011-08-27
4 2011-09-01
5 2011-09-05
6 2011-09-06
7 2011-09-08
8 2011-09-09
Name: timestamp, dtype: datetime64[ns]
这是我一直在尝试使用的代码,但无济于事。
# Get seasons
spring = range(3, 5)
summer = range(6, 8)
fall = range(9, 11)
# winter = everything else
month = temp2.dt.month
season=[]
for _ in range(len(month)):
if any(x == spring for x in month):
season.append(2) # spring
elif any(x == summer for x in month):
season.append(3) # summer
elif any(x == fall for x in month):
season.append(4) # fall
else:
season.append(1) # winter
和
for _ in range(len(month)):
if month[_] == 3 or month[_] == 4 or month[_] == 5:
season.append(2) # spring
elif month[_] == 6 or month[_] == 7 or month[_] == 8:
season.append(3) # summer
elif month[_] == 9 or month[_] == 10 or month[_] == 11:
season.append(4) # fall
else:
season.append(1) # winter
两种解决方案均无效,特别是在第一个实现中,我收到一个错误:
ValueError:具有多个元素的数组的真值不明确。使用a.any()或a.all()
而第二个是有错误的大列表。有什么想法吗?谢谢
您可以使用简单的数学公式将一个月压缩为一个季节,例如:
>>> [month%12 // 3 + 1 for month in range(1, 13)]
[1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 1]
因此,对于使用向量运算的用例(@DSM点数):
>>> temp2.dt.month%12 // 3 + 1
1 3
2 3
3 3
4 4
5 4
6 4
7 4
8 4
Name: id, dtype: int64
问题内容: 我接收到来自Twitter的特定日期以特定格式发送的Twitter消息: 我想将这些日期存储在带有djangos DateTimeField字段的postgresql中的“带有时区的时间戳”字段中。但是,当我存储该字符串时,出现此错误: 我可以自动将twitter datetype转换为python datetime时间(在我的应用程序中的其他地方可以保存日期)。 问题答案: 编写这样
问题内容: 除了运气,我什么都没有,所以为什么不重试呢? 我有一个应用程序需要根据一年中的季节(春季,夏季,冬季,秋季)显示不同的图像。对于这些季节,我有非常具体的开始和结束日期。 我想从您的天才那里得到一个叫GetSeason的方法,该方法将日期作为输入并返回Spring,Summer,Winter或Fall的字符串值。以下是日期范围及其相关的季节: 春季:3 / 1-4 / 30 夏季:5
问题内容: 如何在python中将字符串转换为日期对象? 该字符串是:(对应于格式:) 我不想要datetime.datetime对象,而是想要datetime.date。 问题答案: 您可以在Python包中使用:
问题内容: 给定2个日期(StartDate和EndDate),我该如何在Pl / SQL中生成季度周期。 例子: 预期产量: 问题答案: 参数规则,您可能需要调整查询以适合您的目的: 如果start_date不是确切的季度开始日期,则它有效地使用季度包含开始日期。 如果end_date不是确切的季度末,那么我们将在end_date之前的那个季度结束(而不是包含结束日期的那个季度)。
问题内容: 我在任何地方都找不到。我从返回标准JSON日期的API中获取了一些JSON。您可以通过在JavaScript控制台中运行以下代码来查看格式: 好吧,实际上,我正在使用的API不会返回毫秒部分,有时会返回一个时区而不是,因此日期看起来可能像以下任何一个: 解析这些日期有点麻烦。有没有办法使用解析这些日期? 我当前的解决方案是: 啊! 问题答案: 该DateTime格式实际上是ISO 86
问题内容: 如何将特定日期从Java存储到数据库?(不仅是今天的日期,而且还有用户想要指定的一些日期) 问题答案: 用 类型和被假定分别用于设置日期和时间戳字段。阅读他们的文档,了解它们之间以及与和之间的区别。 通常,您会从用户那里获得一个Java日期()。您使用将该时间转换为自纪元以来的毫秒数,然后转换回a 或如我所示。