Pandas 重新采样数据并获取平均值
Pandas resampling data and getting the mean
我试图以 1 分钟的间隔对一些数据进行重新采样,并使用平均值来表示该分钟的数据,但我一直收到错误消息:
DataError: No numeric types to aggregate.
如果我尝试 min()
、max()
或 sum()
它工作正常但不是平均值。
例如:
mdf = mdf.resample('1min').sum()
会工作但不会
mdf = mdf.resample('1min').mean()
我试过使用 转换数据类型,但我不明白该怎么做。 mdf = pd.to_numeric(mdf)
给出以下错误,
TypeError: arg must be a list, tuple, 1-d array, or Series
我的数据框的数据类型都是对象,如下所示:
- NO object
- NO2 object
- O3 object
- ambHumidity object
- ambPressure object
- ambTempC object
- humidity object
- particulatePM1 object
- particulatePM10 object
- particulatePM25 object
- tempC object
这是数据框的样子
您需要先将数据框所有列中的 dtype 转换为有效数据类型,以便可以使用 mean 等数学函数。
您可以通过apply()
方法转换DataFrame的所有列:
df = df.apply(pd.to_numeric)
见converting types in pandas
我试图以 1 分钟的间隔对一些数据进行重新采样,并使用平均值来表示该分钟的数据,但我一直收到错误消息:
DataError: No numeric types to aggregate.
如果我尝试 min()
、max()
或 sum()
它工作正常但不是平均值。
例如:
mdf = mdf.resample('1min').sum()
会工作但不会
mdf = mdf.resample('1min').mean()
我试过使用 转换数据类型,但我不明白该怎么做。 mdf = pd.to_numeric(mdf)
给出以下错误,
TypeError: arg must be a list, tuple, 1-d array, or Series
我的数据框的数据类型都是对象,如下所示:
- NO object
- NO2 object
- O3 object
- ambHumidity object
- ambPressure object
- ambTempC object
- humidity object
- particulatePM1 object
- particulatePM10 object
- particulatePM25 object
- tempC object
这是数据框的样子
您需要先将数据框所有列中的 dtype 转换为有效数据类型,以便可以使用 mean 等数学函数。
您可以通过apply()
方法转换DataFrame的所有列:
df = df.apply(pd.to_numeric)
见converting types in pandas