我正在使用 pandas,它可以非常有效地按我需要的方式对数据进行排序/过滤。
这段代码运行良好,直到我将最后一列更改为复数;现在我得到一个错误。
return self._cython_agg_general('mean') raise DataError('No numeric types to aggregate') pandas.core.groupby.DataError: No numeric types to aggregate
该错误指的是我的第八列(带有复数),因为我想要平均值我找不到将对象转换为复数的方法(据我所知,熊猫现在支持复数)。
这是我使用的代码。
import numpy as np
import pandas as pd
df = pd.read_csv('final.dat', sep=",", header=None)
df.columns=['X.1', 'X.2', 'X.3', 'X.4','X.5', 'X.6', 'X.7', 'X.8']
df1 = df.groupby(["X.1","X.2","X.5"])["X.8"].mean().reset_index()
之后,我收到上述错误。
当我阅读我的文件时,这是 df 输出。
<class 'pandas.core.frame.DataFrame'>
Int64Index: 21266 entries, 0 to 21265
Data columns (total 8 columns):
X.1 21266 non-null values
X.2 21266 non-null values
X.3 21266 non-null values
X.4 21266 non-null values
X.5 21266 non-null values
X.6 21266 non-null values
X.7 21266 non-null values
X.8 21266 non-null values
dtypes: float64(4), int64(3), object(1)
这是输入文件的一个小样本。