如何识别和标记pandas数据框中的相似行

时间:2016-06-21 15:55:53

标签: python pandas dataframe

我正在使用由两个熊猫数据帧组成的大型数据集。其中一个是从仪器中获取的测量值,另一个是每次测量时出现的变量。目标是使用一些监督学习方法来预测给定测量的变量。我没有找到一种方法来使用多个变量作为我曾经历过的任何监督学习方法中的'标签'或y值,例如scikit learn的随机森林分类器。

作为一种解决方法,我试图通过基本上创建一个指示类似行的新列来一次预测一个或两个变量。这样我只能将一个实际代表两个变量的变量输入到学习方法

我的开始:

   a    b
0  1  103
1  6  103
2  1   103
3  2   2
4  3   103
5  6   103
6  1   103
7  5   103
8  1    2
9  2    2

我想要的是什么:

   c    
0  1
1  2
2  1
3  3
4  4
5  2
6  1
7  5   
8  6
9  3

如果您知道如何使用多个标签或y变量进行监督学习,那么这也会非常有用。

1 个答案:

答案 0 :(得分:0)

你的问题确实需要澄清,但由于他们是MIA,我将提前做好准备。

<强>的假设

  • 左侧的列来自列表列表。我将其命名为&#34; alist_oflists&#34;。
  • 每次找到唯一的内部列表时,都会将新的整数类型标识符归属于它。
  • 输出可以只是一个列表列表,内部列表是包含先前找到的ID的单个项目列表。两个列表的顺序必须匹配。
alist_oflists = [[1, 1000], [2, 10], [2, 100], [2, 10], [3, 1000], [2, 100], [2, 10]]

# we need tuples instead of lists cause lists are not hashable (will be used as dict keys)
alist_oftuples = [tuple(x) for x in alist_oflists]

print(alist_oftuples) # prints:[(1, 1000), (2, 10), (2, 100), (2, 10), (3, 1000), (2, 100), (2, 10)]

a_dict = {}
i = 1
for items in alist_oftuples:
    if items in a_dict.keys():
        continue
    else:
        a_dict[items] = i
        i += 1

i_wanna_see_results = []
for item in alist_oftuples:
    i_wanna_see_results.append(a_dict[item])

print(i_wanna_see_results) # prints: [1, 2, 3, 2, 4, 3, 2]

这是你想要的吗?