gpt4 book ai didi

python - 我们如何找到每个月添加或删除的新 ID?

转载 作者:行者123 更新时间:2023-12-05 03:18:58 26 4
gpt4 key购买 nike

我们如何找到每月添加的新 ID?我有这个数据框。

import pandas as pd
import numpy as np

# data stored in dictionary
details = {
'address_id': [111, 111, 111, 111, 222, 222, 222, 333, 333, 444, 444, 555, 555, 777],
'mydate':['2022-01-24', '2022-01-24', '2022-03-28', '2022-03-28', '2022-01-24', '2022-01-24', '2022-03-28', '2022-01-24', '2022-03-28', '2022-01-24', '2022-03-28', '2022-01-24', '2022-04-16', '2022-03-28']
}

df = pd.DataFrame(details)
df

enter image description here

我可以轻松地按日期分组并找到唯一的 ID

df_id = df.groupby('mydate').address_id.nunique().reset_index()
df_id

enter image description here

但是如何列出新添加的 ID 和最近删除的 ID?我如何创建一个列表或数据框,向我显示“2022-03-28”不存在 555,所以这是一个添加。此外,'2022-04-16' 的 111、222、333、444 和 777 都被删除了

最佳答案

为每一天创建一组:

daily_ids = df.groupby('mydate')['address_id'].agg(set).sort_index(ascending=False)
print(daily_ids)

# Output:

mydate
2022-04-16 {555}
2022-03-28 {777, 333, 111, 444, 222}
2022-01-24 {555, 333, 111, 444, 222}
Name: address_id, dtype: object

现在我们可以通过查看集合之间的差异来检查差异。

# Recently Removed:
>>> daily_ids.diff().shift(-1)
mydate
2022-04-16 {777, 333, 111, 444, 222}
2022-03-28 {555}
2022-01-24 NaN
Name: address_id, dtype: object

# Recently Added:
>>> daily_ids.diff(-1)
mydate
2022-04-16 {555}
2022-03-28 {777}
2022-01-24 NaN
Name: address_id, dtype: object

关于python - 我们如何找到每个月添加或删除的新 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73574127/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com