python - Pandas pct_change 不支持的操作数 / 用于 str 和 float
问题描述
我正在尝试执行以下代码:
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 时,它都是浮动的。有人能帮我吗?
解决方案
我认为需要将非数值转换为NaN
s:
data_extracted['ARTICLENO'] = pd.to_numeric(data_extracted['ARTICLENO'], errors='coerce')
推荐阅读
- java - 我一直在试图弄清楚如何纠正这个错误,但我似乎无处可去
- django - 如何在 Django 中使用函数批量更新字段
- javascript - 如何设置一个 vue 可以读取的变量来响应 swiper 的事件处理程序
- android - 在 Init 项目之后的 React Native 项目中出现错误“无法在空对象上获取属性‘依赖项’”
- c++ - c++中的无限do-while循环
- java - 为什么我不能在 While 循环内返回?
- javascript - 如何使用烧瓶实现 SSE
- javascript - 根据填充表的数据值设置制表符 editorParams
- html - 如何避免使用 chrome 浏览器在网络选项卡中重复加载单个图像
- vba - 根据另一个交互式文本框的输入更改一个交互式文本框