如何合并下一行'从当前行开始以Python结束
例如,如果我有一个看起来像这样的 DataFrame
对于相同的 id 和类别,我想仅保留第一个开始和最后一个结束编号,并消除中间的编号。例如,对于第 0 行和第 1 行,由于它们的 id
都是 A
并且 category
都是 Cat_1
,因此start
将为 1
,end
将为 3
。 预期输出如下所示:
请随意使用以下代码来探索:
import pandas as pd
data = {'id': ['A','A','A', 'B', 'B', 'C' , 'D'],
'start': [1,2,3,4,5,6,7],
'end': [2,3,4,5,6,7,8],
'Category':['Cat_1', 'Cat_1', 'Cat_2' , 'Cat_3', 'Cat_3', 'Cat_3', 'Cat_3']
}
df = pd.DataFrame(data)
For example if I have a DataFrame that looks like this
For the same id and Category, I would like to keep only the first start and last end number and eliminate the middle ones. For example, for row 0 and 1, since their id
are both A
and category
are both Cat_1
, the start
would be 1
and end
would be 3
.
The expected output would look like this:
Feel free to use the following code to explore:
import pandas as pd
data = {'id': ['A','A','A', 'B', 'B', 'C' , 'D'],
'start': [1,2,3,4,5,6,7],
'end': [2,3,4,5,6,7,8],
'Category':['Cat_1', 'Cat_1', 'Cat_2' , 'Cat_3', 'Cat_3', 'Cat_3', 'Cat_3']
}
df = pd.DataFrame(data)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用
groupby
+agg
来调用first
位于“start”和最后
关于“结束”:输出:
You could use
groupby
+agg
where you callfirst
on "start" andlast
on "end":Output: