Pandas df.带有特定于列的聚合函数的recrample



with pandas.dataframe.resample i可以下样本dataframe:

df.resample("3s", how="mean")

此重新示例具有DateTime类索引的数据框架,以便将所有值在3秒内汇总到一行中。平均列的值。

问题:我有一个带有多列的数据框。是否可以为不同列指定不同的聚合函数,例如我想"sum"x"mean"y并选择"last"z?我该如何实现这种效果?

我知道我可以创建一个新的空数据框架,然后三次致电resample,但我更喜欢一个更快的原位解决方案。

您可以在重新采样后使用.agg。使用字典,您可以通过各种功能汇总不同的列。

尝试以下操作:

df.resample("3s").agg({'x':'sum','y':'mean','z':'last'})

另外,how被弃用:

c: program文件 anaconda3 lib site-packages ipykernel__main __. py:1:1: FutureWarning:在.resample((中如何弃用新语法是 .resample(...(。平均((

考虑dataframe df

np.random.seed([3,1415])
tidx = pd.date_range('2017-01-01', periods=18, freq='S')
df = pd.DataFrame(np.random.rand(len(tidx), 3), tidx, list('XYZ'))
print(df)
                            X         Y         Z
2017-01-01 00:00:00  0.444939  0.407554  0.460148
2017-01-01 00:00:01  0.465239  0.462691  0.016545
2017-01-01 00:00:02  0.850445  0.817744  0.777962
2017-01-01 00:00:03  0.757983  0.934829  0.831104
2017-01-01 00:00:04  0.879891  0.926879  0.721535
2017-01-01 00:00:05  0.117642  0.145906  0.199844
2017-01-01 00:00:06  0.437564  0.100702  0.278735
2017-01-01 00:00:07  0.609862  0.085823  0.836997
2017-01-01 00:00:08  0.739635  0.866059  0.691271
2017-01-01 00:00:09  0.377185  0.225146  0.435280
2017-01-01 00:00:10  0.700900  0.700946  0.796487
2017-01-01 00:00:11  0.018688  0.700566  0.900749
2017-01-01 00:00:12  0.764869  0.253200  0.548054
2017-01-01 00:00:13  0.778883  0.651676  0.136097
2017-01-01 00:00:14  0.544838  0.035073  0.275079
2017-01-01 00:00:15  0.706685  0.713614  0.776050
2017-01-01 00:00:16  0.542329  0.836541  0.538186
2017-01-01 00:00:17  0.185523  0.652151  0.746060

使用agg

df.resample('3S').agg(dict(X='sum', Y='mean', Z='last'))
                            X         Y         Z
2017-01-01 00:00:00  1.760624  0.562663  0.777962
2017-01-01 00:00:03  1.755516  0.669204  0.199844
2017-01-01 00:00:06  1.787061  0.350861  0.691271
2017-01-01 00:00:09  1.096773  0.542220  0.900749
2017-01-01 00:00:12  2.088590  0.313316  0.275079
2017-01-01 00:00:15  1.434538  0.734102  0.746060

相关内容

  • 没有找到相关文章

最新更新