Pandas 如何检查特定列是否具有与任何行类似的值。类似i的一个例子是456与654相似

Pandas 如何检查特定列是否具有与任何行类似的值。类似i的一个例子是456与654相似,pandas,filter,selection,similarity,Pandas,Filter,Selection,Similarity,我从一个示例数据框开始,试图检查该列中所有行集合的任何值之和是否相同 #### load data### import pandas as pd df=pd.DataFrame(iris.data,columns=iris.feature_names) df.head() 这给了我一个错误“序列的真值是不明确的。使用a.empty、a.bool()、a.item()、a.any()或a.all()”,并且不考虑所有行 m=df.shape[0] columns = [0] df.iloc[

我从一个示例数据框开始,试图检查该列中所有行集合的任何值之和是否相同

#### load data###
import pandas as pd
df=pd.DataFrame(iris.data,columns=iris.feature_names)
df.head()
这给了我一个错误“序列的真值是不明确的。使用a.empty、a.bool()、a.item()、a.any()或a.all()”,并且不考虑所有行

m=df.shape[0]
columns = [0]


df.iloc[2, :] = [3, 4, 5, 1]
df.iloc[3, :] = [3, 4, 4, 1]

for row1 in range(m-1):
    for row2 in range(row1+1, m):
        if (df.iloc[row1,columns].sum == df.iloc[row2, columns].sum).all():`
            # logic
            print ('Good!')
        else:
            print(f"nothing")


不幸的是,这里的求和函数没有按行检查,我不确定如何执行此操作
映射
一个添加数字的函数,然后使用
np。其中
分配
'Good!'其中值是重复的

在:

输出:

df = pd.DataFrame({'data': [456,654,235,532,111,354]})

def sum_digits(n):
   r = 0
   while n:
       r, n = r + n % 10, n // 10
   return r

df['status'] = np.where(df.data.map(sum_digits).duplicated(keep=False), 'Good!', 'nothing')
   data   status
0   456    Good!
1   654    Good!
2   235    Good!
3   532    Good!
4   111  nothing
5   354  nothing