gpt4 book ai didi

python - 如何找到数据框中几乎重复的行数,即相差少于两个条目?

转载 作者:太空宇宙 更新时间:2023-11-04 00:07:12 25 4
gpt4 key购买 nike

我有一个 pandas 数据框,看起来像这样:

     | col1 | col2 | col3 | col4 | col5 | col6 | col7
row1 | a | b | c | d | e | f | g
row2 | a | a | c | d | e | f | g
row3 | a | b | c | d | a | a | g
row4 | a | q | q | q | q | q | q

我想计算除少于两个条目外与另一行相同的行数,并将它们放入列/系列中。

所以在这种情况下,第 2 行和第 3 行与第 1 行相似。因此第 1 行的条目将为 2。总体结果为:

     | col1 | col2 | col3 | col4 | col5 | col6 | col7  | almost_dups
row1 | a | b | c | d | e | f | g | 2
row2 | a | a | c | d | e | f | g | 1
row3 | a | b | c | d | e | a | a | 1
row4 | a | q | q | q | q | q | q | 0

我最初的想法是定义行之间的距离度量。

最佳答案

这段代码怎么样。这里是初学者的快速解决方案,但我认为它可以正常工作。

import pandas as pd
# let's create the dataframe
df = pd.DataFrame(data = {'col1': ['a','a','a','a'],
'col2': ['b','a','b','q'],
'col3': ['c','c','c','q'],
'col4': ['d','d','d','q'],
'col5': ['e','e','a','q'],
'col6': ['f','f','a','q'],
'col7': ['g','g','g','q']} )

almost_dups = [] # initialize the list we want to compute
for i in range(len(df)): # for every dataframe row
a = df.iloc[i].values # get row values
count = 0 # this will count the rows similar to the selected one
for j in range(len(df)): # for every other row
if i!=j: # if rows are different
b = df.iloc[j].values
if sum([i == j for i, j in zip(a, b)])>= 5: # if at least 5 values are same
count +=1 # increase counter
almost_dups.append(count) # append the count
df['almost_dups'] = almost_dups # append the list to dataframe, as a new column

关于python - 如何找到数据框中几乎重复的行数,即相差少于两个条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53723538/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com