计算pandas中数字和非数字列的每日平均值(Compute daily averages of numeric and non

编程入门 行业动态 更新时间:2024-10-26 11:19:50
计算pandas中数字和非数字列的每日平均值(Compute daily averages of numeric and non-numeric columns in pandas)

我有一个每小时时间索引的数据框:

wind_direction relative_humidity dates 2017-07-18 19:00:00 W 88 2017-07-18 20:00:00 N 88 2017-07-18 21:00:00 W 90 2017-07-18 22:00:00 S 91 2017-07-18 23:00:00 W 93

如何计算每日平均值,使得对于数字列,我们计算每日平均值,对于非数字列,我们输出出现次数最多的值。

- 编辑:

我这样做了:

df = df.resample('D').mean()

但是这会返回错误

I have a dataframe with hourly time index:

wind_direction relative_humidity dates 2017-07-18 19:00:00 W 88 2017-07-18 20:00:00 N 88 2017-07-18 21:00:00 W 90 2017-07-18 22:00:00 S 91 2017-07-18 23:00:00 W 93

How can I compute daily average such that for numeric columns we compute daily mean and for non-numeric columns we output the value which occurs most number of times.

-- EDIT:

I did this:

df = df.resample('D').mean()

However this returns an error

最满意答案

选项1

from cytoolz.dicttoolz import merge ncols = df.select_dtypes([np.number]).columns ocols = df.columns.difference(ncols) df.index = pd.to_datetime(df.index) d = merge( {c: 'mean' for c in ncols}, {c: lambda x: pd.value_counts(x).index[0] for c in ocols} ) df.resample('D').agg(d) relative_humidity wind_direction dates 2017-07-18 90 W ​

选项2

df.index = pd.to_datetime(df.index) g = df.resample('D') g.mean().combine_first(g.agg(lambda x: pd.value_counts(x).index[0]))[df.columns] relative_humidity wind_direction dates 2017-07-18 90 W

Option 1

from cytoolz.dicttoolz import merge ncols = df.select_dtypes([np.number]).columns ocols = df.columns.difference(ncols) df.index = pd.to_datetime(df.index) d = merge( {c: 'mean' for c in ncols}, {c: lambda x: pd.value_counts(x).index[0] for c in ocols} ) df.resample('D').agg(d) relative_humidity wind_direction dates 2017-07-18 90 W ​

Option 2

df.index = pd.to_datetime(df.index) g = df.resample('D') g.mean().combine_first(g.agg(lambda x: pd.value_counts(x).index[0]))[df.columns] relative_humidity wind_direction dates 2017-07-18 90 W

更多推荐

本文发布于:2023-07-05 01:03:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1031237.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数字   平均值   pandas   Compute   numeric

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!