我有如下的DataFrame:
rng = pd.date_range('2020-12-01', periods=5, freq='D')
df = pd.DataFrame({"ID" : ["1", "2", "1", "2", "2"],
"category" : ["A", "B", "A", "C", "B"],
"status" : ["active", "finished", "active", "finished", "other"],
"Date": rng})我需要创建DataFrame并计算2列:
的最后协议类别
为了获得更高的精度,下面我给出了结果DataFrame:

发布于 2020-12-16 15:04:15
假设数据已按日期排序,我们希望保留最后一行"status"=="active"和最后一行"status"=="finished"。我们还希望只保留第一列和第二列,并将类别重命名为"New1“表示活动状态,将"New2”重命名为已完成状态。
last_active = df[df.status == "active"].iloc[-1, [0, 1]].rename({"category": "New1"})
last_finished = df[df.status == "finished"].iloc[-1, [0, 1]].rename({"category": "New2"})我们有两个熊猫系列,我们想并排连接,然后转到每一行有一个条目:
pd.concat([last_active, last_finished], axis=1, sort=False).T也许,您还想在之后调用"reset_index()“,以便在生成的DataFrame中有一个新的RangeIndex。
https://stackoverflow.com/questions/65325411
复制相似问题