【发布时间】:2022-11-04 02:12:37
【问题描述】:
我对 geopandas 和 pandas datetime 对象有一些问题;我一直收到错误
pandas Invalid field type <class 'pandas._libs.tslibs.timedeltas.Timedelta'>
当我尝试使用 gpd.to_file() 保存它时,显然这是 pandas 和 geopandas 日期类型之间的一个已知问题,所以我使用了
df.DATE = df.DATE.apply(lambda x: datetime.datetime.strptime(x, '%Y-%m-%dT%H:%M:%S%z'))
要获得一个 datetime 对象,我可以在保存结果时进行操作而不会出现上述错误。由于这种变化,我按月选择
months = [4]
for month in months:
df = df[[(pd.DatetimeIndex(df.DATE).month == month)]]
不再起作用,抛出一个值错误。
ValueError: Item wrong length 1 instead of 108700.
我尝试删除 pd.DatetimeIndex 但这会引发数据帧系列错误
AttributeError: 'Series' object has no attribute 'month'
和
df = df[(df.DATE.month == month)]
给我同样的错误。 我知道它转换为 datetime 对象,因为 print(df.dtype) 显示 DATE datetime64[ns, UTC] 和
for index, row in df.iterrows():
print(row.DATE.month)
将月份作为整数打印到终端。
在不返回 pd.Datetime 的情况下,我该如何修复当月的选择语句?
【问题讨论】: