У меня есть кадр данных pandas, который выглядит так.
'Column1' 'Column2' 'Column3'
'cat' 'bat'. 'xyz'
'toy' 'flower'. 'abc'
'cat' 'bat' 'lmn'
Я хочу определить, что кошка и летучая мышь - это те же самые значения, которые были повторены и, следовательно, хотят удалить одну запись и сохранить только первую запись. Результирующий фрейм данных должен иметь только.
'Column1' 'Column2' 'Column3'
'cat'. 'bat'. 'xyz'
'toy'. 'flower'. 'abc'
Использование drop_duplicates
с subset
со списком столбцов для проверки дубликатов и keep='first'
для сохранения первого дубликата.
Если dataframe
:
df = pd.DataFrame({'Column1': ["'cat'", "'toy'", "'cat'"],
'Column2': ["'bat'", "'flower'", "'bat'"],
'Column3': ["'xyz'", "'abc'", "'lmn'"]})
print(df)
Результат:
Column1 Column2 Column3
0 'cat' 'bat' 'xyz'
1 'toy' 'flower' 'abc'
2 'cat' 'bat' 'lmn'
Затем:
result_df = df.drop_duplicates(subset=['Column1', 'Column2'], keep='first')
print(result_df)
Результат:
Column1 Column2 Column3
0 'cat' 'bat' 'xyz'
1 'toy' 'flower' 'abc'
Внутри drop_duplicates()
Dataframe
вы можете предоставить серию имен столбцов, чтобы исключить дубликаты записей из ваших данных.
Следующий код "Протестировано" делает то же самое:
import pandas as pd
df = pd.DataFrame()
df.insert(loc=0,column='Column1',value=['cat', 'toy', 'cat'])
df.insert(loc=1,column='Column2',value=['bat', 'flower', 'bat'])
df.insert(loc=2,column='Column3',value=['xyz', 'abc', 'lmn'])
df = df.drop_duplicates(subset=['Column1','Column2'],keep='first')
print(df)
Внутри параметра подмножества вы также можете вставить другие имена столбцов, и по умолчанию он рассмотрит все столбцы ваших данных, и вы можете указать значение keep:
import pandas as pd
df = pd.DataFrame({"Column1":["cat", "dog", "cat"],
"Column2":[1,1,1],
"Column3":["C","A","B"]})
df = df.drop_duplicates(subset=['Column1'], keep='first')
print(df)