Удалить дубликаты из строк в mydataset - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть файл CSV, который содержит 436 столбцов и 14 тыс. Строк. Формат данных внутри ячеек - строка. Для примера это выглядит так:

A,A,A,B,B,C,C,,,,,
D,F,D,F,D,F,H,,,,,

Моя цель - получить каждую строку только с ее уникальными значениями. Вот так:

A,B,C,,,,,,,,
D,F,H,,,,,,,,

Файл находится в файле csv / txt. Я могу использовать ноутбук Jupyter (с Python3 или любым другим кодом, который вы, ребята, предоставите). Но это моя работа. Любая помощь будет потрясающей! Я также загрузил CSV как Dataframe в ноутбук. Что вы, ребята, предлагаете?

Ответы [ 2 ]

0 голосов
/ 20 февраля 2020

Если у вас есть CSV, загруженный как фрейм данных df:

    0   1   2   3   4   5   6
0   A   A   A   B   B   C   C
1   D   F   D   F   D   F   H

Итерируйте по строкам и найдите уникальные значения для каждой строки:

unique_vals = []
for _, row in df.iterrows():
    unique_vals.append(row.unique().tolist())
unique_vals

[['A', 'B', 'C'], ['D', 'F', 'H']]

У вас нет упомянул тип возвращаемых данных, поэтому я возвратил список.

Редактировать: Если набор данных слишком большой, рассмотрите возможность использования опции chunk_size в read_csv.

0 голосов
/ 20 февраля 2020

Сначала вы должны прочитать ваш CSV-файл в массив numpy. Затем для каждой строки я бы сделал что-то вроде:

import numpy as np
s='A,A,A,B,B,C,C'
f=s.split(',')
np.unique(np.array(f))

, которое печатает array(['A', 'B', 'C'], dtype='|S1').

...