python-3.x - 当 matplotlib 不支持时,altair 输出“输入类型不支持 ufunc 'isinf'”错误
问题描述
我有这样一个熊猫数据框:
RangeIndex: 4478 entries, 0 to 4477
Data columns (total 11 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 timestamp 4478 non-null datetime64[ns]
1 user 4478 non-null object
2 Active_energy_exported_kWh 2466 non-null float64
3 Active_energy_imported_kWh 4473 non-null float64
4 Reactive_energy_imported_kVARh 3822 non-null float64
5 Reactive_energy_imported_kVARh 3822 non-null float64
6 Active_power_imported_kW 4449 non-null float64
7 Reactive_power_imported_kVAR 4471 non-null float64
8 Apparent_power_imported_kVA 4471 non-null float64
9 Power_factor 4449 non-null float64
10 Supply_frequency_Hz 4449 non-null float64
dtypes: datetime64[ns](1), float64(9), object(1)
memory usage: 385.0+ KB
现在,如果我尝试用altair
这种方式绘制它:
ttChart = alt.Chart(mlogs).mark_line().encode(
alt.X('timestamp:T', title=None),
alt.Y('Supply_frequency_Hz:Q', title=None),
)
我明白了TypeError: ufunc 'isinf' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''
但是当我这样做时
mlogs.plot(x="timestamp", y="Supply_frequency_Hz")
我可以看到我的期望。
据我所知,类型是正确的,我看不到发生了什么。
解决方案
我得到了同样的错误信息。事实证明,我的 DataFrame 中的 2 列具有相同的名称。修复它,解决了问题。
您的示例中的两列名为“Reactive_energy_imported_kVARh”。也许这就是错误的原因。
推荐阅读
- c++ - 如何在 C++ 中为一组未知的 2D 点生成最佳曲线拟合
- c++ - 如何从输入字符串制作二维向量?
- python - 如何使用 sqlalchemy 避免全局变量
- graphql - 无法读取未定义的属性“授权”
- javascript - 具有 Google Apps 脚本值的服务器端和客户端通信函数
- reactjs - Razorpay 说尝试创建实例时没有传递密钥
- three.js - 在 Three.js 中连接两个组件
- python - 如何调用名称仅在python中的变量中知道的函数?
- assembly - 程序集:错误 [66]:段太长(最大值为 ffff)
- python - Python 将列表中的每个数字视为一个单独的数字