Skip to main content
 首页 » 编程设计

python之使用条件 groupby 创建 python 数据框

2025年05月04日22kevingrace

我有以下数据:

year code   value   
2003  A      12   
2003  B      11   
2003  C      12   
2004  A      14   
2004  B      15   
2004  C      13   
2004  E      16   
2005  A      9   
2005  B      18   
2005  C      16   
2005  F      8   
2005  G      19   

我只想保留每年出现的代码。

我需要从上面的数据框中提取所有代码出现在年份(2003、2004、2005)中的行。这意味着我应该有一个新的 df,其中包含代码 A、B 和 C 的 9 行。我尝试使用 groupby 和 isin() 但无法准确获得我需要的东西。

请您参考如下方法:

没有groupby

df.set_index(['year','code']).unstack().dropna(axis=1).stack().reset_index() 
Out[528]:  
   year code  value 
0  2003    A   12.0 
1  2003    B   11.0 
2  2003    C   12.0 
3  2004    A   14.0 
4  2004    B   15.0 
5  2004    C   13.0 
6  2005    A    9.0 
7  2005    B   18.0 
8  2005    C   16.0