寻找新的出口目标:数据科学groupby和isin

2024-09-27 21:33:11 发布

您现在位置:Python中文网/ 问答频道 /正文

对于下面的df,我想发现这些公司(id对应于一家公司)在2016年相对于2015年出口的新命运

df = pd.DataFrame({"Id":[1,1,1,1,1,1,2,2,2,3,3], 
               "Year":[2015,2015,2016,2016,2016,2016,2015,2016,2016,2015,2016], 
               "Destiny":['A','B','A','B','C','D','C','C','D','A','Z']})

我想在一个groupby+isin,但不能´我没有任何希望的办法

输出结果应为:

 Id   Year   Destiny
 1    2016        D
 3    2016        Z

Tags: iddataframedf公司yearpdgroupbydestiny
3条回答

Please try this below code also:请也尝试一下:

df = pd.DataFrame({"Id":[1,1,1,1,1,1,2,2,2,3,3], 
           "Year":[2015,2015,2016,2016,2016,2016,2015,2016,2016,2015,2016], 
           "Destiny":['A','B','A','B','C','D','C','C','D','A','Z']})
df.groupby(["Id"]).last()

IIUC公司:

df.sort_values(by=['Id','Year']).drop_duplicates(subset=['Id'], keep='last')

输出:

   Destiny  Id  Year
5        D   1  2016
8        D   2  2016
10       Z   3  2016

你可以简单地移除那些有2015年的命运

to_remove = df[df['Year'].isin([2015])]['Destiny']

df[~df['Destiny'].isin(to_remove)]

   Destiny  Id  Year
5        D   1  2016
8        D   2  2016
10       Z   3  2016

相关问题 更多 >

    热门问题