Падение дубликатов не работает на мой импортированный CSV-файл

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

# Import files for use in the program:
import pandas as pd
import os
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm
import matplotlib.dates as mdates
import numpy as np
import csv

Импортировать файлы CSV во фрейм данных

Crash_Data_df = pd.read_csv("crash_data.csv",encoding='UTF-8')

#split date column
Crash_Data_df[["Day", "Month", "DayNum","Time","Zone","Year"]] = 
Crash_Data_df["Date"].str.split(" ", n = 6, expand = True) 

#define max and min dates
d_max=Crash_Data_df["Date"].min()
d_min=Crash_Data_df["Date"].max()

#split name column
Crash_Data_df[["A","B"]] = Crash_Data_df["Name"].str.split("_|2018100", n = 
2, expand = True) 

#Drop time zone
Crash_Data_df.drop(['Zone'], axis = 1, inplace = True)
Crash_Data_df.reset_index(drop=True)

# group by unnamed column
Crash_Data_df = Crash_Data_df.loc[Crash_Data_df['Unnamed: 0'] == 0, :]

#del columns 
del Crash_Data_df['Unnamed: 0']
del Crash_Data_df['Name']
del Crash_Data_df['A']

Crash_Data_df = Crash_Data_df.loc[Crash_Data_df['B'] != 9954815, :]

Crash_Data_df = Crash_Data_df.dropna(how='any')
Crash_Data_df.drop_duplicates(subset=['Time'], keep=False)
Crash_Data_df.sort_values(by=['B'])
Crash_Data_df.reset_index(drop=True)
Crash_Data_df = Crash_Data_df.rename(columns=    
{'B':'ID','Date':'DATE','Direction':'DIRECTION','Road':'ROAD',
'Location':'LOCATION','Event':'EVENT','Day':'DAY',
'Month':'MONTH','DayNum':'DAYNUM','Time':'TIME','Year':'YEAR'})

Crash_Data_df.set_index('ID', inplace=True,drop=True)

Crash_Data_df.to_csv("crash_data_check.csv", index=False, header=True)
Crash_Data_df.drop_duplicates()

Crash_Data_df.groupby("ID").filter(lambda x: len(x) > 1)
Crash_Data_df.head()

Дубликаты ID не удаляются. пробовал разные столбцы без сделки.. вывод выглядит так:

    DATE    DIRECTION   ROAD    LOCATION    EVENT   DAY MONTH   DAYNUM  TIME    YEAR
ID                                      
9954815 Sun Oct 07 03:35:22 CDT 2018    WB  T.H.62  @ T.H.100 NB    CRASH   Sun Oct 07  03:35:22    2018
9954815 Sun Oct 07 03:35:22 CDT 2018    WB  T.H.62  @ T.H.100 NB    CRASH   Sun Oct 07  03:35:22    2018
9954815 Sun Oct 07 03:35:22 CDT 2018    WB  T.H.62  @ T.H.100 NB    CRASH   Sun Oct 07  03:35:22    2018
9954815 Sun Oct 07 03:35:22 CDT 2018    WB  T.H.62  @ T.H.100 NB    CRASH   Sun Oct 07  03:35:22    2018
9954815 Sun Oct 07 03:35:22 CDT 2018    WB  T.H.62  @ T.H.100 NB    CRASH   Sun Oct 07  03:35:22    2018
9954815 Sun Oct 07 03:35:22 CDT 2018    WB  T.H.62  @ T.H.100 NB    CRASH   Sun Oct 07  03:35:22    201

DATE         object
DIRECTION    object
ROAD         object
LOCATION     object
EVENT        object
DAY          object
MONTH        object
DAYNUM       object
TIME         object
YEAR         object
dtype: object

1 ответ

Поскольку .drop_duplicates возвращает копию df, вы хотите либо обновить переменную df, либо выполнить удаление с помощью inplace=True,

Пытаться:

Crash_Data_df = Crash_Data_df.drop_duplicates(subset=['Time'], keep=False)

Или же

Crash_Data_df.drop_duplicates(subset=['Time'], keep=False, inplace=True)

Оба должны работать.

Кстати, то же самое относится к другому drop_duplicates призвание.

Другие вопросы по тегам