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