Удаление повторяющихся записей из файла CSV с помощью Python Pandas - PullRequest
0 голосов
/ 03 октября 2018

Я хотел бы удалить дубликаты записей из CSV-файла с помощью Python Pandas. CSV содержит записи с тремя атрибутами масштаба, minzoom, maxzoom.Я хочу получить результирующий фрейм данных с minzoom и maxzoom, а оставленные записи должны быть уникальными

т.е.

Входной CSV-файл (lookup_scales.csv)

 Scale, minzoom, maxzoom
 2000, 0, 15
 3000, 0, 15
 10000, 8, 15
 20000, 8, 15
 200000, 15, 18
 250000, 15, 18

Обязательный Different_lookup_scales.csv (без столбца шкалы)

minzoom, maxzoom
0,5
8,15
15,18 

Мой код пока

lookup_scales_df = pd.read_csv('C:/Marine/lookup/lookup_scales.csv', names = ['minzoom','maxzoom'])
lookup_scales_df = lookup_scales_df.set_index([2, 3])
file_name = "C:/Marine/lookup/distinct_lookup_scales.csv"
lookup_scales_df.groupby('minzoom', 'maxzoom').to_csv(file_name, sep=',')

Очень благодарен за любую помощь.Я новичок в пандах и работаю с датафреймом

Ответы [ 2 ]

0 голосов
/ 03 октября 2018

Вам не нужно ничего или ничего, вы можете просто сделать unique-ify в одной строке, импортируя CSV с помощью pandas:

import pandas as pd
df = pd.read_csv('lookup_scales.csv', usecols=['minzoom', 'maxzoom']).drop_duplicates(keep='first').reset_index()

output:

   minzoom  maxzoom
0        0       15
1        8       15
2       15       18

Затем записать его в CSV:

df.to_csv(file_name, index=False) # you don't need to set sep in this because to_csv makes it comma delimited.

Итак, весь код:

import pandas as pd
df = pd.read_csv('lookup_scales.csv', usecols=['minzoom', 'maxzoom']).drop_duplicates(keep='first').reset_index()
file_name = "C:/Marine/lookup/distinct_lookup_scales.csv"
df.to_csv(file_name, index=False) # you don't need to set sep in this because to_csv makes it comma delimited.
0 голосов
/ 03 октября 2018

Вы можете использовать pd.read_csv(), pd.to_csv() и drop_duplicates():

import pandas as pd

df = pd.read_csv('test.csv', sep=', ', engine='python')

new_df = df[['minzoom','maxzoom']].drop_duplicates()

new_df.to_csv('out.csv', index=False)

Выходы на out.csv:

minzoom,maxzoom
0,15
8,15
15,18

Примечание sep=', ' при чтении test.csv, в противном случае имена столбцов с пробелом остаются, если их оставить по умолчанию sep=','.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...