我有下面的數據幀與重復數據。我想從數據幀中刪除這些重復項。
df = pd.DataFrame({'test_id': [
{'user_id':2, 'insert_date':'2020-12-23', 'is_admin': "true"},
{'user_id':4, 'insert_date':'2020-12-23', 'is_admin': "true"},
{'user_id':3, 'insert_date':'2020-12-21', 'is_admin': "false"},
{'user_id':2, 'insert_date':'2020-12-23', 'is_admin': "true"}
], 'contact_id':[1,4,2,1]}
)
print(df)
test_id contact_id
0 {'user_id': 2, 'insert_date': '2020-12-23', 'i... 1
1 {'user_id': 4, 'insert_date': '2020-12-23', 'i... 4
2 {'user_id': 3, 'insert_date': '2020-12-21', 'i... 2
3 {'user_id': 2, 'insert_date': '2020-12-23', 'i... 1
我在下面試過消除重復
df = df.drop_duplicates(subset=['test_id', 'contact_id'], keep='first')
print(df)
但是低于錯誤
c:\python38\lib\site-packages\pandas\core\algorithms.py in _factorize_array(values, na_sentinel, size_hint, na_value)
482
483 table = hash_klass(size_hint or len(values))
--> 484 uniques, codes = table.factorize(values, na_sentinel=na_sentinel, na_value=na_value)
485
486 codes = ensure_platform_int(codes)
pandas\_libs\hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.factorize()
pandas\_libs\hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable._unique()
TypeError: unhashable type: 'dict'
有誰能指導我如何刪除基于'test_id','contact_id'組合的重復數據嗎?
我要低于輸出
test_id contact_id
0 {'user_id': 2, 'insert_date': '2020-12-23', 'i... 1
1 {'user_id': 4, 'insert_date': '2020-12-23', 'i... 4
2 {'user_id': 3, 'insert_date': '2020-12-21', 'i... 2
在刪除重復項之前,可以先將列
test_id
中的值轉換為字符串,如下所示:然后運行代碼:
輸出與您想要的相同: