我有一个新的代码,我试图写一个数据框得到过滤/编辑,以获得"stints"为每个人。使用下面的数据框作为一个例子,我基本上是试图得到每个人的开始/结束日期为给定的位置。通常我可以开始对我自己,但我被难倒了,如何处理这个问题,所以如果有人有想法,我会非常感谢它。
| | 人|位置|日期|
| - ------|- ------|- ------|- ------|
| 无|汤姆|A类|2021年1月1日|
| 1个|汤姆|A类|2021年1月2日|
| 第二章|汤姆|A类|2021年1月3日|
| 三个|汤姆|乙|2021年1月4日|
| 四个|汤姆|乙|2021年1月5日|
| 五个|汤姆|乙|2021年1月6日|
| 六个|汤姆|A类|2021年1月7日|
| 七|汤姆|A类|2021年1月8日|
| 八个|汤姆|A类|2021年1月9日|
| 九|汤姆|C级|2021年1月10日|
| 十个|汤姆|C级|2021年1月11日|
| 十一|汤姆|A类|2021年1月12日|
| 十二|汤姆|A类|二○二一年一月十三日|
| 十三|汤姆|乙|二○二一年一月十四日|
| 十四|汤姆|乙|二○二一年一月十五日|
| 十五|马克|A类|2021年1月1日|
| 十六|马克|A类|2021年1月2日|
| 十七|马克|乙|2021年1月3日|
| 十八|马克|乙|2021年1月4日|
| 十九|马克|A类|2021年1月5日|
| 二十个|马克|A类|2021年1月6日|
| 二十一|马克|C级|2021年1月7日|
| 二十二|马克|C级|2021年1月8日|
| 二十三|马克|C级|2021年1月9日|
| 二十四|马克|C级|2021年1月10日|
| 二十五|马克|A类|2021年1月11日|
| 二十六|马克|A类|2021年1月12日|
| 二十七|马克|乙|二○二一年一月十三日|
| 二十八|马克|乙|二○二一年一月十四日|
| 二十九|马克|乙|二○二一年一月十五日|
预期成果:
| | 人|位置|统计编号|开始日期|结束日期|
| - ------|- ------|- ------|- ------|- ------|- ------|
| 无|汤姆|A类|1个|2021年1月1日|2021年1月3日|
| 1个|汤姆|乙|第二章|2021年1月4日|2021年1月6日|
| 第二章|汤姆|A类|三个|2021年1月7日|2021年1月9日|
| 三个|汤姆|C级|四个|2021年1月10日|2021年1月11日|
| 四个|汤姆|A类|五个|2021年1月12日|二○二一年一月十三日|
| 五个|汤姆|乙|六个|二○二一年一月十四日|二○二一年一月十五日|
| 六个|马克|A类|1个|2021年1月1日|2021年1月2日|
| 七|马克|乙|第二章|2021年1月3日|2021年1月4日|
| 八个|马克|A类|三个|2021年1月5日|2021年1月6日|
| 九|马克|C级|四个|2021年1月7日|2021年1月10日|
| 十个|马克|A类|五个|2021年1月11日|2021年1月12日|
| 十一|马克|乙|六个|二○二一年一月十三日|二○二一年一月十五日|
3条答案
按热度按时间wwtsj6pe1#
IMO,一个干净的方法是使用
groupby
+agg
,这使得设置自定义聚合器很容易,比apply
更快:输出:
xxls0lw82#
试试这个:
输出:
llew8vvj3#
输出: