python - Pandas pct_change 不支持的操作数/对于 str 和 float

标签 python python-3.x pandas

我正在尝试执行以下代码:

data = pd.read_csv('statistic.csv', parse_dates=True, index_col=['DATE'], 
low_memory=False, nrows=5000000)
data_extracted = data.groupby(['DATE','ARTICLENO'])['QUANTITY'].sum().unstack()

data_extracted = data_extracted.loc['2015-01-01' : '2015-12-31']

data_extracted = data_extracted.replace([np.inf, -np.inf], 
np.nan).fillna(0.0001)
data_pct_change = data_extracted.pct_change(axis=0).replace([np.inf, - 
np.inf], np.nan).fillna(0)
data_pct_change.drop([col for col, val in data_pct_change.sum() if val == 0 
], axis=1, inplace=True)

当我执行此操作时,我收到 TypeError: unsupported operand type(s) for/: 'str' and 'str'。 当我尝试执行 data_extracted['ARTICLENO] = data_extracted['ARTICLENO'].astype(float) 时,我收到相同的错误。 当我打印 data_extracted.dtypes 时,它都是 float 。 有人可以帮助我吗?

最佳答案

我认为需要将非数值转换为 NaNs:

data_extracted['ARTICLENO'] = pd.to_numeric(data_extracted['ARTICLENO'], errors='coerce')

关于python - Pandas pct_change 不支持的操作数/对于 str 和 float,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51534288/

相关文章:

python - 无法使用 pytesseract.image_to_string 从图像中读取文本

python - 在Python中插入缺失值

python - 文本文件前面的字节

python - 有条件地对齐两个数据帧,以便导出作为 numpy 条件传入的列,其中

python - 使用值列表从 Pandas 数据框中选择行

python - 确定一个 dll 是在调试中构建的还是使用 python 发布的

python - 从 Python 中的路径确定文件系统类型

python - 覆盖 __class__ 引发 TypeError

python-3.x - 如何在opencv python中为摄像头视频赋予透明边框?

python - pandas 中的组函数,范围由标签选择