gpt4 book ai didi

python - 你如何在python中按年份分隔 Pandas 数据框?

转载 作者:行者123 更新时间:2023-12-04 09:34:42 25 4
gpt4 key购买 nike

我试图制作一个图表,通过平均 19 年的 NOAA 数据来显示一年中每天的平均温度(旁注,有没有更好的方法来获取历史天气数据,因为 NOAA 似乎非常不一致)。我想知道设置数据的最佳方法是什么。我的数据的相关列如下所示:

              DATE  PRCP    TAVG    TMAX    TMIN    TOBS
0 1990-01-01 17.0 NaN 13.3 8.3 10.0
1 1990-01-02 0.0 NaN NaN NaN NaN
2 1990-01-03 0.0 NaN 13.3 2.8 10.0
3 1990-01-04 0.0 NaN 14.4 2.8 10.0
4 1990-01-05 0.0 NaN 14.4 2.8 11.1
... ... ... ... ... ... ...
10838 2019-12-27 0.0 NaN 15.0 4.4 13.3
10839 2019-12-28 0.0 NaN 14.4 5.0 13.9
10840 2019-12-29 3.6 NaN 15.0 5.6 14.4
10841 2019-12-30 0.0 NaN 14.4 6.7 12.2
10842 2019-12-31 0.0 NaN 15.0 6.7 13.9

10843 rows × 6 columns
DATE列是 datetime64[ns]类型
这是我的代码:
import pandas as pd
from matplotlib import pyplot as plt

data = pd.read_csv('1990-2019.csv')

#seperate the data by station
oceanside = data[data.STATION == 'USC00047767']
downtown = data[data.STATION == 'USW00023272']
oceanside.loc[:,'DATE'] = pd.to_datetime(oceanside.loc[:,'DATE'],format='%Y-%m-%d')

#This is the area I need help with:
oceanside['DATE'].dt.year

我一直在尝试按年份分离数据,这样我就可以对其进行平均。我想在不使用 for 的情况下执行此操作循环,因为我计划用更大的数据集来做这件事,这将是非常低效的。我查看了 Pandas 文档,但找不到似乎可以做到这一点的函数。我错过了什么吗?这甚至是正确的方法吗?
我是 Pandas/python 数据分析的新手,所以很可能答案正盯着我看。
任何帮助将不胜感激!

最佳答案

创建数据帧的字典,其中每个键是一年

df_by_year = dict()
for year oceanside.date.dt.year.unique():
data = oceanside[oceanside.date.dt.year == year]
df_by_year[year] = data
按一年获取数据
oceanside[oceanside.date.dt.year == 2019]
获取每年的平均值
oceanside.groupby(oceanside.date.dt.year).mean()

关于python - 你如何在python中按年份分隔 Pandas 数据框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62647605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com