我正在尝试将 Dataframe 与 Series 进行比较以检查 df 中的行之一是否等于该系列,例如
import pandas as pd
import datetime as dt
d = pd.DataFrame([[1, dt.datetime(1990,12,10)],
[2, dt.datetime(1990,12,11)]])
s = d.loc[0].copy()
print(d == s) # or d.gt(s) which should do the same
这会因以下错误而中断
类型错误:int() 参数必须是字符串、类似字节的对象或数字,而不是“时间戳”
比较values
产量和预期结果:
d.values == s.values
array([[ True, True],
[False, False]], dtype=bool)
此外,使用字符串不会引发此错误:
d = pd.DataFrame([[1, "a"], [2, "b"]])
s = d.loc[1].copy()
print(s == d)
# 0 1
#0 True True
#1 False False
这是熊猫中的错误还是我做错了什么?
编辑:
我正在使用 python 3.6 和 pandas 0.20.3
我在pandas github上开了一个问题:17411
问题是我有 0.20.3 版本,这是通过 pip 或 conda 获得的最新版本。
版本 0.21,这是 github 上的最后一个开发版本,似乎已经解决了这个问题。
一旦 0.21 版本在 pypi 上,我将删除该问题
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句