import pandas as pd
import numpy as np
df = pd.DataFrame({'Li':[[1,2],[5,6],[8,9]],'Tu':[(1,2),(5,6),(8,9)]}
df
Li Tu
0 [1, 2] (1, 2)
1 [5, 6] (5, 6)
2 [8, 9] (8, 9)
为Tuple
工作罚款
df.Tu == (1,2)
0 True
1 False
2 False
Name: Tu, dtype: bool
当其List
时,它给出值错误
df.Li == [1,2]
ValueError: Lengths must match to compare
问题是pandas将
[1, 2]
视为类似于对象的系列,并试图将df.Li
的每个元素与[1, 2]
的每个元素进行比较,因此出现错误:无法将大小为2的列表与大小为3的列表进行比较(
df.Li
)。为了验证这一点,您可以执行以下操作:输出
它不会抛出任何错误并正常工作,但会按预期返回
False
。要使用列表进行比较,可以执行以下操作:输出
总的来说,它看起来像熊猫那边的一只虫子
问题是
list
是不可散列的,因此有必要比较tuple
s:或在列表理解中:
如果所有列表的长度相同:
我的列“vectors”包含numpy ndarray,当我想与另一个ndarray“centroid”进行比较时,我得到了相同的错误。numpy Ndarays的以下工程:
这也适用于列表:
相关问题 更多 >
编程相关推荐