如何计算最近日期和第二个最近日期的行数之间的差异
How to calculate difference between amount of rows for most recent date and second most recent date
我有以下 df:
Index Address Date
0 0x06b 2021-12-02 16:03:09.332
1 0x04t 2021-12-03 16:03:09.332
2 0x12c 2021-12-03 16:03:09.332
3 0x3d5 2021-12-04 16:03:09.332
4 0x077 2021-12-04 16:03:09.332
5 0x998 2021-12-04 16:03:09.332
我想计算最近日期(t
)之间的行数(列的len()
)的差异,在本例中为2021-12-04 16:03:09.332
)和前一个日期 (t-1
) 以及任何前一个日期 (t-2, t-3, ..., t-n
)。
在这种情况下,t - (t-1) 的答案应该是 1,因为最近的日期有 3 行,而第二个最近的日期有 2 行。 3-2 = 1.
我已经尝试实施 中的解决方案,但它似乎不起作用。
我假设您想计算每天的记录数与最新可用日期的增量 - 以下是否可以满足您的需求:
import pandas as pd
# Set up the test dataframe
df = pd.DataFrame({"Address":["2021-12-02", "2021-12-03","2021-12-03","2021-12-04", "2021-12-04", "2021-12-04"]})
df["Address"] = pd.to_datetime(df["Address"])
df2 = df.groupby("Address")[["Address"]].count().rename(columns={"Address": "count"})
# This will make sure it will calculate vs last available date
df2.at[max(df2.index),"count"] - df2
输出
count
Address
2021-12-02 2
2021-12-03 1
2021-12-04 0
我有以下 df:
Index Address Date
0 0x06b 2021-12-02 16:03:09.332
1 0x04t 2021-12-03 16:03:09.332
2 0x12c 2021-12-03 16:03:09.332
3 0x3d5 2021-12-04 16:03:09.332
4 0x077 2021-12-04 16:03:09.332
5 0x998 2021-12-04 16:03:09.332
我想计算最近日期(t
)之间的行数(列的len()
)的差异,在本例中为2021-12-04 16:03:09.332
)和前一个日期 (t-1
) 以及任何前一个日期 (t-2, t-3, ..., t-n
)。
在这种情况下,t - (t-1) 的答案应该是 1,因为最近的日期有 3 行,而第二个最近的日期有 2 行。 3-2 = 1.
我已经尝试实施
我假设您想计算每天的记录数与最新可用日期的增量 - 以下是否可以满足您的需求:
import pandas as pd
# Set up the test dataframe
df = pd.DataFrame({"Address":["2021-12-02", "2021-12-03","2021-12-03","2021-12-04", "2021-12-04", "2021-12-04"]})
df["Address"] = pd.to_datetime(df["Address"])
df2 = df.groupby("Address")[["Address"]].count().rename(columns={"Address": "count"})
# This will make sure it will calculate vs last available date
df2.at[max(df2.index),"count"] - df2
输出
count
Address
2021-12-02 2
2021-12-03 1
2021-12-04 0