遍历pandas DataFrameGroupBy对象以创建具有每月子图的年度图像

杜松子酒

我有一个带有时风速和方向的datetime索引的pandas DataFrame。我的时间序列涵盖31年,我需要每年制作每月风玫瑰的图像。这将转换为31个图像,每个图像具有12个子图。

我已经弄清楚了如何使用Windrose包来获取windrose。使用GroupBy,我可以按每年和/或每月对数据进行分组。

我曾尝试按年和月分组,但无法弄清楚如何逐年迭代以制作月度图

grouped = data.groupby(by=[data.index.year, data.index.month])

接下来,我尝试进行一个for循环并将每个组每年的数据分组

# Make lists of years and months
years = pd.Series(data.index.year).drop_duplicates(keep='first')
months = np.arange(1,13)

for year in years:
   yearly = data.groupby([data.index.year == year])

但这仅将数据分组为2017年的观察值,而没有将其归为2017年的观察值。如果我随后尝试使用以下方法过滤到2017年:

for year in years:
    yearly = data.groupby([data.index.year == year]).filter(lambda x: data.index.year == 2017)

我收到错误TypeError:过滤器函数返回了ndarray,但预期为标量布尔

因此,在这一点上,我希望能够首先迭代数年,然后迭代数月(每年)以最终创建具有每月子图的年度图像。

本帕

您的错误在这里:

for year in years:
   yearly = data.groupby([data.index.year == year])

yearly = data.groupby([data.index.year]将以年为单位对数据进行分组。您需要按年迭代不同的组,如下所示:

for name, group in yearly:
              ....

可以在以下位置找到文档:http : //pandas.pydata.org/pandas-docs/stable/user_guide/groupby.html#iterating-through-groups

对于每月分组,您可以执行以下操作:

yearly = data.groupby([data.index.year, data.index.month]) 它将按年份分组,然后按月分组。

然后按月过滤,仅返回2017年:

yearly = data.groupby([data.index.year, data.index.month]).filter(lambda x: x.index.year = 2017)

(在您的代码中,您在lambda语句中使用了“日期”而不是“ x”,这也是为什么它也失败了)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

遍历Pandas groupby对象的子集

遍历pandas列并创建新列

对于具有numpy / pandas的循环(遍历列标题)

如何创建宏以遍历Pandas Dataframe中的所有列?

如何遍历pandas DataFrameGroupBy并为特定列选择每个分组变量的所有条目?

如何遍历 Pandas DataFrame 中的字符串对象

如何正确遍历范围和列表以创建Pandas Dataframe?

如何根据某些条件遍历Pandas DataFrame以创建新的DateFrame

遍历Pandas数据框的列并创建新变量

Python遍历txt文件以创建和合并Pandas Dataframe

循环遍历 Pandas 数据框以创建单独的 Folium 地图

遍历 JSON 数据并打印。(或从 JSON 文件创建 Pandas DataFrame)

遍历具有路线53记录的地形对象图

对于每一行,循环遍历具有 Pandas 值的每一列

循环遍历Pandas Dataframe的有效方法以创建虚拟变量(1或0输入)

遍历对象图

创建每小时间隔并遍历以获得value_counts python pandas

循环遍历多个小 Pandas 数据框并基于单列创建汇总数据框

遍历 pandas 数据框中的行并匹配列表字典中的值以创建新列

遍历pandas数据框中的所有列以在定界符上拆分

如何遍历pandas dataframe + indexing中除最后一列之外的所有列?

循环遍历 Pandas 数据框以使用 for 循环替换现有值

如何在工作区中遍历所有Pandas数据框?

遍历 Pandas 数据框(逐列)并将所有特殊字符提取到列表中

Pandas 遍历行或 groupby 并有条件地求和

使用 Pandas 遍历列

Python / Pandas遍历列

Pandas Dataframe 遍历行

遍历有图案的图像