簡體   English   中英

無法使用drop_duplicates從DataFrame中刪除重復項

[英]Can't remove duplicates from DataFrame with drop_duplicates

所以我正在使用Pandas的DataFrame和python。

我將參考的數據幀是通過以下方式創建的:

search = DataFrame([[262,'ny', '20'],[515,'paris','19'],[669,'ldn','10'], [669,'ldn', 10],[669,'ldn',5]],columns = ['subscriber_id','location','radius' ])

title = DataFrame([[262,'director'],[515,'artist'],[669,'scientist']],columns = ['subscriber_id','title' ])

然后將標題和搜索DataFrame合並。

mergedTable = merge(title, search, on='subscriber_id', how= 'outer')

形成數據框:

   subscriber_id      title location radius
0            262   director       ny     20
1            515     artist    paris     19
2            669  scientist      ldn     10
3            669  scientist      ldn     10
4            669  scientist      ldn      5

如我們所見,它已正確合並,因此現在我們可以根據用戶的搜索在多行中獲取訂戶的數據。

現在,我不想擺脫具有多個具有不同值的行的訂閱者,但是我確實希望擺脫重復的行。

這是期望的最終結果:

   subscriber_id      title location radius
0            262   director       ny     20
1            515     artist    paris     19
2            669  scientist      ldn     10
4            669  scientist      ldn      5

第3行與第2行重復,將被刪除。

我一直在研究這個,似乎drop_duplicates()應該工作,即

mergedTable.drop_duplicates()

但這不起作用,行也不會刪除。 有可用的提示/解決方案嗎?

由於[669,'ldn','10']某些字符串,您的半徑為dtype對象。 '10' != 10 轉換為整數將達到目的:

>>> mergedTable.radius = mergedTable.radius.astype(int)
>>> mergedTable.drop_duplicates()
   subscriber_id      title location  radius
0            262   director       ny      20
1            515     artist    paris      19
2            669  scientist      ldn      10
4            669  scientist      ldn       5

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM