久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

Pandas - 有條件的刪除重復項

Pandas - Conditional drop duplicates(Pandas - 有條件的刪除重復項)
本文介紹了Pandas - 有條件的刪除重復項的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我有一個適用于 Python 3.6x 的 Pandas 0.19.2 數據框,如下所示.我想基于條件邏輯使用相同的 Id drop_duplicates().

I have a Pandas 0.19.2 dataframe for Python 3.6x as below. I want to drop_duplicates() with the same Id based on a conditional logic.

import pandas as pd
import numpy as np
np.random.seed(1)
df = pd.DataFrame({'Id':[1,2,3,4,3,2,6,7,1,8],
              'Name':['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'K'],
              'Size':np.random.rand(10),
              'Age':[19, 25, 22, 31, 43, 23, 44, 20, 51, 31]})

根據我在下面描述的邏輯,實現這一目標的最有效(如果可能的話)方法是什么?

What would be the most efficient (if possible vectorised) way to achieve this based on the logic I describe below?

1) 在刪除重復項之前,將重復的 Id 條目的 Size 相加.

1) Before dropping duplicates, sum the Size of duplicate Id entries.

2) 刪除相同 Id 記錄的重復記錄,保留具有較大 Age 記錄的記錄.

2) Drop duplicates for same Id records, keeping the one that has a larger Age.

期望的輸出是:

   Age  Id Name      Size
1   25   2    B  0.812662
3   31   4    D  0.302333
4   43   3    E  0.146870
6   44   6    G  0.186260
7   20   7    H  0.345561
8   51   1    I  0.813790
9   31   8    K  0.538817

推薦答案

使用GroupBy.transform 用于與 sort_valuesdrop_duplicates 用于刪除重復:

Use GroupBy.transform for aggregated values with same size as original DataFrame with sort_values and drop_duplicates for remove dupes:

df['Size'] = df.groupby('Id')['Size'].transform('sum')
df = df.sort_values('Age').drop_duplicates('Id', keep='last').sort_index()
print (df)
   Id Name      Size  Age
1   2    B  0.812663   25
3   4    D  0.302333   31
4   3    E  0.146870   43
6   6    G  0.186260   44
7   7    H  0.345561   20
8   1    I  0.813789   51
9   8    K  0.538817   31

這篇關于Pandas - 有條件的刪除重復項的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Python Pandas: Counting the frequency of a specific value in each row of dataframe?(Python Pandas:計算每行數據幀中特定值的頻率?)
Pandas, groupby and summing over specific months(Pandas、groupby 和特定月份的求和)
.sum() method in pandas gives inconsistent results(pandas 中的 .sum() 方法給出的結果不一致)
Sum product and groupby(對產品和分組求和)
How to sum in pandas by unique index in several columns?(如何通過幾列中的唯一索引對 pandas 求和?)
Pandas: sum up multiple columns into one column without last column( pandas :將多列匯總為一列,沒有最后一列)
主站蜘蛛池模板: 亚洲国产精品99久久久久久久久 | 日韩欧美三区 | 夜夜操天天艹 | 国产高清免费视频 | 一区二区福利视频 | 精品国产亚洲一区二区三区大结局 | 久久综合一区 | 免费成人高清在线视频 | 亚洲 欧美 日韩 精品 | a在线免费观看 | 久久久久久久一级 | 国产精品夜夜春夜夜爽久久电影 | 国产美女在线免费观看 | 中国大陆高清aⅴ毛片 | 毛片在线免费 | 欧美中文字幕一区二区 | 午夜电影网 | 51ⅴ精品国产91久久久久久 | 一本一道久久a久久精品综合 | 999久久精品 | 欧美精品综合在线 | 嫩草视频在线 | 色就干| 国产精品夜夜夜一区二区三区尤 | 粉嫩一区二区三区四区公司1 | 国产成人免费视频网站高清观看视频 | 91精品综合久久久久久五月天 | 99福利视频 | 亚洲一区二区三区高清 | 午夜天堂精品久久久久 | 国产伦一区二区三区四区 | 黄视频网址 | 97人人澡人人爽91综合色 | 天天艹日日干 | 日本一区二区高清视频 | 久久久久久久久综合 | 91久久久久久 | 国产一区999 | 日韩精品一区二区三区中文在线 | 亚洲精品在线观 | 欧美激情欧美激情在线五月 |