Python 熊猫:不重新采样要聚合的数字类型

Python 熊猫:不重新采样要聚合的数字类型,python,pandas,csv,resampling,Python,Pandas,Csv,Resampling,我试图使用pandas平滑一些数据,但我遇到了一个错误,告诉我没有要聚合的数字类型。我在互联网上找到了各种解决方案,但我无法克服这个错误 我正在使用以下网站提供的数据: 我通过以下方式导入csv: sensor = pd.read_csv("all.csv", sep=";") 我使用 sensor["timestamp"] = pd.to_datetime(sensor["timestamp"], infer_datetime_format=True, errors="coerce")

我试图使用pandas平滑一些数据,但我遇到了一个错误,告诉我没有要聚合的数字类型。我在互联网上找到了各种解决方案,但我无法克服这个错误

我正在使用以下网站提供的数据:

我通过以下方式导入csv:

sensor = pd.read_csv("all.csv", sep=";")
我使用

sensor["timestamp"] = pd.to_datetime(sensor["timestamp"], infer_datetime_format=True, errors="coerce")
并将时间戳设置为索引

sensor = sensor.set_index("timestamp")
为了保持简单,我提取了一个列

p_1 = sensor["P1"]
我现在想使用以下方法对数据重新采样一小时:

p_1.resample("1H").mean()
但这会返回一个错误:

pandas.core.base.DataError: No numeric types to aggregate
从我搜索错误时收集到的信息来看,我必须以某种方式将列转换为数值,但我找不到任何函数可以为我留下一个可以工作的表

编辑:我找到了这个,但我真的不知道如何将它应用到我的情况中:

编辑2(已解决):

我可以通过使用更改传感器中的数据类型来重新采样数据

sensor["P1"] = sensor["P1"].apply(pd.to_numeric, errors='coerce')

我确信我以前在
p_1
子集上尝试过这一点,但无法使其工作。

不,对我有效。向我们展示
sensor.P1.dtype
为您提供的功能。如果不是
int
float
,您可以只写
sensor.P1=sensor.P1.astype('float')
(或
int
,如果需要),然后重试。将来,最好显示几行数据和您正在使用的pandas版本i am using pandas(0.21.1)
sensor.P1.dtype
为我提供
dtype('O')
。但是,尝试
sensor.P1=sensor.P1.astype('float')
返回
ValueError:无法将字符串转换为float:'P1'
@Michael听起来您的数据帧有列标题作为数据