如何对 csv 中的 'date' 列进行排序以仅显示年度范围内的 spring 数据
How to sort a 'date' column in a csv to show only spring data for a yearly range
我正在处理一个包含每日最高温度和最低温度的大型数据集。我只想查看 1971-2000 年的 spring 日最高气温。这是我的数据集示例:
Date, TMAX, TMIN
6/1/68,70,51
6/2/68,76,57
6/3/68,74,55
6/4/68,78,54
6/5/68,76,54
..一直持续到 2018 年
我通过这样做创建了一个只有 1970-2000 年的新数据集:
df['Date']=pd.to_datetime(df['Date'])
df1971_2000 = df[ ≤br>
(pd.to_datetime(df['Date']) >
pd.to_datetime('1971-01-01')) &
(pd.to_datetime(df['Date']) <
pd.to_datetime('2000-12-31'))
]
但我不知道如何只查看这部分年份的 3 月、4 月和 5 月的 TMAX。我试过下面的内容。
但是一直报错
TypeError:'getset_descriptor' object is not callable
SpringTemps = Valid1971_2000[
(pd.to_datetime(Valid1971_2000['Date']) >
pd.to_datetime(month(3))) &
(pd.to_datetime(Valid1971_2000['Date']) <
pd.to_datetime(month(6)))
]
有谁知道更好的方法吗?
最好通过 pandas
日期时间对象的 dt.month
accessor 访问您的月份。然后,您可以通过查看它是 3、4 还是 5 来检查它是三月、四月还是五月:
Valid1971_2000.loc[Valid1971_2000.Date.dt.month.isin([3,4,5])]
您也可以使用 between
而不是 isin
:
Valid1971_2000.loc[Valid1971_2000.Date.dt.month.between(3,5)]
我正在处理一个包含每日最高温度和最低温度的大型数据集。我只想查看 1971-2000 年的 spring 日最高气温。这是我的数据集示例:
Date, TMAX, TMIN
6/1/68,70,51
6/2/68,76,57
6/3/68,74,55
6/4/68,78,54
6/5/68,76,54
..一直持续到 2018 年
我通过这样做创建了一个只有 1970-2000 年的新数据集:
df['Date']=pd.to_datetime(df['Date'])
df1971_2000 = df[ ≤br>
(pd.to_datetime(df['Date']) >
pd.to_datetime('1971-01-01')) &
(pd.to_datetime(df['Date']) <
pd.to_datetime('2000-12-31'))
]
但我不知道如何只查看这部分年份的 3 月、4 月和 5 月的 TMAX。我试过下面的内容。 但是一直报错
TypeError:'getset_descriptor' object is not callable
SpringTemps = Valid1971_2000[
(pd.to_datetime(Valid1971_2000['Date']) >
pd.to_datetime(month(3))) &
(pd.to_datetime(Valid1971_2000['Date']) <
pd.to_datetime(month(6)))
]
有谁知道更好的方法吗?
最好通过 pandas
日期时间对象的 dt.month
accessor 访问您的月份。然后,您可以通过查看它是 3、4 还是 5 来检查它是三月、四月还是五月:
Valid1971_2000.loc[Valid1971_2000.Date.dt.month.isin([3,4,5])]
您也可以使用 between
而不是 isin
:
Valid1971_2000.loc[Valid1971_2000.Date.dt.month.between(3,5)]