Перемешивание строк в Pandas DataFrame с сохранением индекса - PullRequest
2 голосов
/ 25 мая 2020

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

В настоящее время я использовал

data = data.sample(frac=1).reset_index(drop=True)

Однако это вызывает некоторые проблемы с выводом. Я не думаю, что строки перемешиваются правильно. Есть ли другой способ добиться этого?

Проблема в том, что я провожу анализ текста, и когда я смотрю на наиболее коррелированные униграммы и биграммы с каждым классом, я получаю разные ответы для перетасованных и исходных данных.

Это код, который я использую для монограмм и биграмм

tfidf = TfidfVectorizer(sublinear_tf=True, 
                    min_df=5, 
                    stop_words=STOPWORDS, 
                    norm = 'l2', 
                    encoding='latin-1', 
                    ngram_range=(1, 2))

feat = tfidf.fit_transform(data['Combine']).toarray()

N = 5    # Number of examples to be listed
for f, i in sorted(category_labels.items()):
    chi2_feat = chi2(feat, labels == i)
    indices = np.argsort(chi2_feat[0])
    feat_names = np.array(tfidf.get_feature_names())[indices]
    unigrams = [w for w in feat_names if len(w.split(' ')) == 1]
    bigrams = [w for w in feat_names if len(w.split(' ')) == 2]
    print("\nFlair '{}':".format(f))
    print("Most correlated unigrams:\n\t. {}".format('\n\t. '.join(unigrams[-N:])))
    print("Most correlated bigrams:\n\t. {}".format('\n\t. '.join(bigrams[-N:])))

1 Ответ

0 голосов
/ 25 мая 2020

Простое использование data = data.sample(frac=1) также выборки индекса, и это проблематично c. Вы можете увидеть результат ниже. Нам просто нужно изменить значения.

enter image description here

Правильный метод для достижения этого - просто выборка значений. Я только что разобрался. Мы можем сделать это так. Спасибо всем, кто пытался помочь.

data[:] = data.sample(frac=1).values

Я получил правильный вывод из этого.

...