如何根据其他列的数量保持行数?

时间:2018-07-14 03:58:15

标签: python python-3.x python-2.7 pandas pandas-groupby

我一直想办法解决这一问题。

例如,我在下面有一个数据框:

+---------+---------+
| ColumnA | ColumnB |
+---------+---------+
| PartA   |       4 |
| PartA   |       4 |
| PartA   |       4 |
| PartA   |       4 |
| PartA   |       4 |
| PartA   |       4 |
| PartB   |       3 |
| PartB   |       3 |
| PartB   |       3 |
| PartB   |       3 |
| PartC   |       2 |
| PartC   |       2 |
| PartC   |       2 |
| PartC   |       2 |
+---------+---------+

如何将上面的数据框变成这样:

+---------+---------+
| ColumnA | ColumnB |
+---------+---------+
| PartA   |       4 |
| PartA   |       4 |
| PartA   |       4 |
| PartA   |       4 |
| PartB   |       3 |
| PartB   |       3 |
| PartB   |       3 |
| PartC   |       2 |
| PartC   |       2 |
+---------+---------+

如您所见,我想基于ColumnB上的行数保持行数

我找到的最接近的解决方案是使用df.groupby('ColumnA').tail(3) 但我希望根据ColumnB尾部的值不断变化。

任何帮助将不胜感激!!!谢谢!

1 个答案:

答案 0 :(得分:1)

使用GroupBy.apply,并按iat每组选择第一个值luckCheck

bool luckCheck(){
    int luckTest = gen.Next(1,12);
    return luckTest <= playerLuck;
}