Python 获取浮点对象不可编辑的错误

Python 获取浮点对象不可编辑的错误,python,python-3.x,pandas,numpy,Python,Python 3.x,Pandas,Numpy,您好,我是python和pandas的新手。这里我有以下格式的数据 A B [2000.0, 2000.0] [2200.0, 0.0, 2200.0] [2200.0, 0.0, 0.0] [2200.0, 2200.0, 2200.0] [2200.0, 2200.0, 2200.0] [2200.0, 2200.0, 2200.0] [200.0, 200.0, 200.0] [200.0,

您好,我是python和pandas的新手。这里我有以下格式的数据

A                             B
[2000.0, 2000.0]          [2200.0, 0.0, 2200.0]
[2200.0, 0.0, 0.0]        [2200.0, 2200.0, 2200.0]
[2200.0, 2200.0, 2200.0]  [2200.0, 2200.0, 2200.0]
[200.0, 200.0, 200.0]     [200.0, 0.0, 200.0]
[160.0, 160.0, 160.0]     NaN
在这里,我试图比较两个数组的大小写相同且唯一

[2200.0,2200.0,2200.0] and [2200.0, 2200.0, 2200.0]
应返回
true

但是 [2200.0,0.0,0.0]和[2200.0,0.0,0.0]应向我返回
false
。那么,有没有办法做到这一点

----> 2     if set(A) == set(B):

有人能帮我吗?

我想在比较之前,您可以用空列表替换缺少的值:

df_out[['A','B']] = df_out[['A','B']].applymap(lambda x: [] if x != x else x)
或:


测试

def comp(A,B):
    try:
        a= set(A)
        b= set(B)
        return ((a == b) and (len(a) == 1) and (len(b) == 1))
    except TypeError:
        return False
或:



如果您想知道问题中每行
A
列和
B
列的唯一值是否相同,请使用:

df_out['is_same'] = df_out.apply(lambda x: set(x['A']) == set(x['B']), axis=1)

对于ins,rw in df_out.iterrows():如果set(A)==set(B):实际上我在循环中只做这个检查,不想创建新的df。如果是相等的,那么就做点什么或者其他事情吧。如果我必须检查一个数组,该数组将检查两者是否应该具有相等和唯一的值。像[200200]和[200200]应该返回true,但是[200,0200]和[200,0200]应该返回truefalse@GaneshKaspate-好的,如果问题被更改,请发布新问题。@GaneshKaspate为什么“[200,0200]和[200,0200]应该返回false”?它们彼此相同。是的,但第一个和第二个中的值不相等什么是
A
(或
B
)?错误表明1是一个数字
set()
需要类似列表的内容。你在顶部到底展示了什么?这是一个数据帧的显示吗?列名为“a”和“B”?
def comp(A,B):
    try:
        a= set(A)
        b= set(B)
        return ((a == b) and (len(a) == 1) and (len(b) == 1))
    except TypeError:
        return False
def comp(A,B):
    try:
        return (set(A) == set(B)) and (len(set(A)) == 1) and (len(set(B)) == 1)
    except TypeError:
        return False
for ins, rw in df_out.iterrows():
    val = comp(rw.Previous_Three, rw.Next_Three)
    print (val)
    False
    False
    True
    False
    False
df_out['is_same'] = df_out.apply(lambda x: set(x['A']) == set(x['B']), axis=1)