Frozenset в список дает неправильные результаты - PullRequest
0 голосов
/ 02 сентября 2018

Error image

То, что я сделал, это:

a = dataframe.antecedants
print(type(a[0]))
print(a[10])
b = a.tolist()
print(type(b[10]))
print(b[10])
c = [list(x) for x in a]
print(type(c[10]))
print(c[10])

Я пытался сохранить свой априорный фрейм данных в Elasticsearch, так как он содержит frozenset, поэтому у меня возникла ошибка, поэтому я перешел к конвертированию frozenset в список, и здесь, когда я конвертирую свой frozenset в список, я получаю неправильные результаты. Почему я так получаю? Я просто хочу преобразовать столбец frozenset в список списков.

Данные forzenset похожи на:

frozenset image

Пример:

0                 (1)
1               (522)
4               (349)
5                (37)
6               (372)
7                (37)
8               (373)
9                (37)
10              (372)
11              (349)
12              (373)
13              (349)
14              (372)
15              (373)
16         (372, 349)
17          (372, 37)
18          (37, 349)
19              (372)
20              (349)
21               (37)
22         (349, 373)
23          (37, 373)

И библиотеки, которые я использую:

import pandas as pd
import numpy as np
from pandas.io.json import json_normalize
from mlxtend.frequent_patterns import apriori
from mlxtend.frequent_patterns import association_rules
from elasticsearch import Elasticsearch
import json

Тогда:

dataframe = apriori(dataframe, min_support=0.1, use_colnames=True)
dataframe = association_rules(dataframe, metric="lift", min_threshold=1)
new = dataframe.copy()

По сути, я пытаюсь добиться преобразования frozenset столбцов в list из lists.

Обновлено

Хотя, когда я это сделал:

my_list = []
for antecedant in new.antecedants:
    my_list.append(list(antecedant))
my_list

это сработало! но:

column_values = pd.Series(my_list)
new.insert(loc=0, column='new_column', value=column_values)
new

но опять дал неверные результаты в кадре данных.

1 Ответ

0 голосов
/ 02 сентября 2018
new.reset_index(drop=True, inplace=True)

работал на меня! как видите, индексы не являются непрерывными после формирования априорных правил и правил ассоциации, поэтому сброс индекса помог мне!

...