Python:Pandas - 按组删除第一行

标签 python pandas

我有如下大型数据框 (df),如下所示:

    ID     date        PRICE       
1   10001  19920103  14.500    
2   10001  19920106  14.500    
3   10001  19920107  14.500     
4   10002  19920108  15.125     
5   10002  19920109  14.500   
6   10002  19920110  14.500    
7   10003  19920113  14.500 
8   10003  19920114  14.500     
9   10003  19920115  15.000 

问题:删除(或删除)每个 ID 的第一行的最有效方法是什么?我想要这个:

        ID     date     PRICE       
    2   10001  19920106  14.500    
    3   10001  19920107  14.500     
    5   10002  19920109  14.500   
    6   10002  19920110  14.500    
    8   10003  19920114  14.500     
    9   10003  19920115  15.000 

我可以对每个唯一的 ID 进行循环并删除第一行,但我认为这不是很有效。

最佳答案

另外一行代码是df.groupby('ID').apply(lambda group: group.iloc[1:, 1:])

Out[100]: 
             date  PRICE
ID                      
10001 2  19920106   14.5
      3  19920107   14.5
10002 5  19920109   14.5
      6  19920110   14.5
10003 8  19920114   14.5
      9  19920115   15.0

关于Python:Pandas - 按组删除第一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31226142/

相关文章:

python - Pandas groupby 然后填充缺失的行

Python 3.4 不会从文本文件中读取超过一行

python - 从 python 更新浏览器中的 d3

python - Pandas :拆分索引字符串并汇总相等切片的行

python - pandas python 中没有名为 read_csv 的属性

从多个位置导入模块时的 python3 相对导入

python - 使用 glob,匹配目录模式并根据顺序返回最高的

python - 根据其他数据帧中的列标题成员资格(按日期)在 pandas 数据帧(按日期)中设置 boolean 值

python - 在Python中对分组条形图按一定顺序对x轴进行排序

Python:使用不同大小的数据帧根据日期时间条件创建新列