pandas - `TypeError: '<' 在 'str' 和 'int' 的实例之间不支持` Pandas
问题描述
我有一个df
股票数据,包括股票名称、近期走势、预期走势(基于我的模型)以及实际走势和预期走势之间的差异。它看起来像这样:
Stock Move Expected Diff
0 A 77.9 126.03 -48.13
1 B -58.1 -34.38 -23.72
2 C 8.33 24.67 -16.34
3 D -67.33 -54.98 -12.35
4 E -41.91 -30.49 -11.42
5 F -36.94 -26.33 -10.61
它df
本身实际上很大,我只是以 5 行为例,但我要做的是遍历其中的每一行,df
如果满足某些要求,则打印该行。我iterrows()
以这样的方式使用:
for index, rows in df.iterrows():
if df['Move'] < 0:
if df['Diff'] < 0:
print(df['Stock'], df['Move'], df['Diff'])
这会产生 2 个问题。第一个问题让我发疯。当我从头开始运行脚本并通过 API 连接下载实时数据时,出现以下错误:
TypeError: '<' not supported between instances of 'str' and 'int'
来自线路:if df['Move'] < 0:
所以我得到了dtype
每一列的,它们确实是object
。
因此,我尝试将两者都转换为int
/float
以查看是否有帮助,if float(df['Residual']) < 0:
但是它会产生此错误消息:
TypeError: cannot convert the series to <class 'float'>
因此它甚至不允许我将数据转换为所需的类型,这是我的第一个问题。
因此,我决定将其保存df
到 csv 文件,并以这种方式加载数据。出于某种原因,我的列现在是“float64”,这在理论上解决了上面的第一个问题,但后来我收到了这个错误:
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
任何帮助将不胜感激,干杯
解决方案
推荐阅读
- emacs - 如何重新启用区域?
- java - Spring Data MongoDB 4.0 事务支持
- php - cURL GET 响应不可读
- jquery - CSS动画将父容器外的元素拉伸到固定位置
- android - 将富 html 文本框显示到 android 中的文本视图中
- node.js - 最大数量验证不起作用猫鼬模式
- python - 如何从核心转储中反转字符串的虚拟地址?
- angular - 带有自定义控件的 Angular 5 反应式表单作为 stackblitz 上的 FormArray 示例
- spring-boot - 使用 Kotlin 的 JpaRepository 上的 ClassCastException
- sql-server - 根据 SQL 中的条件提取 XML 节点