pandas - 知道数据框中的哪一行与另一行相似
问题描述
我有一个称为数据的数据框。另外,我在 dataframe group1 中有 2057 列和 197 行,我想知道哪一行与另一行相似。我做的:
group1=pd.crosstab(data.column1,data.column2)
group1["EsDuplicado?"]=group1.duplicated(subset=group1.columns.difference(['BCP_Nombre_de_la_Matriz__c']),keep=False)
直到现在它还在工作,我添加了一个新列,其值为真(当该行与另一行相似时)或当该行不相似时为假。
我想知道哪些行是相似的并且确切地知道它的对。
到现在我的桌子是这样的:
但我想要这样的东西:
或者也许这不是必需的,如果行彼此相邻就足够了,这样我就知道哪一行是相似的。
我想要这样的东西,但在这个例子中,我只有 2 列,我有 2057 列:
解决方案
@cs95 对您链接到的问题的回答可以直接推广到任意数量的列。
这是一个用于测试的小示例数据集,但我将使第二个代码块通用,以便它也适用于您的 DataFrame,只要它的名称是group1
.
import pandas as pd
group1 = pd.DataFrame({'column 1': [1, 1, 1, 1, 1, 1],
'column 2': [2, 2, 2, 2, 2, 2],
'column 3': [3, 4, 3, 5, 3, 4]})
group1
column 1 column 2 column 3
0 1 2 3
1 1 2 4
2 1 2 3
3 1 2 5
4 1 2 3
5 1 2 4
group1['first such row'] = group1.groupby(list(group1.columns))[group1.columns[0]
].transform('idxmin')
group1
column 1 column 2 column 3 first such row
0 1 2 3 0
1 1 2 4 1
2 1 2 3 0
3 1 2 5 3
4 1 2 3 0
5 1 2 4 1
推荐阅读
- python - Floating Object is not iterable
- python - 将数据框列从字符串转换为数字列表
- node.js - 尝试使用 vanilla JS 发送请求 GET 来表达时,响应为空
- javascript - 如何更改在画布上呈现的单个对象的不透明度?
- c++ - 重载的虚拟行为是否定义良好?
- mongodb - Mongodb使用$lookup查找给定_id属于哪个对象(外域是一个数组)
- javascript - 如何使用条件语句检查 javascript 中构造函数的值?
- php - 使用数组中的数据插入多个 MYSQLI
- php - 使用 Spatie\MediaLibrary 上传文件时 Laravel 包错误
- c++ - 使用 sf::Text 数组时崩溃