查找具有值和最新日期的行数
Find number of rows with values and latest date
我有这样的数据框:
pk_id date
123 2020-01-01
223 2020-01-02
123 2020-01-03
224 2020-01-04
我想找到 pk_id = 123
和 pk_id = 223
以及它们的最新日期并计算这些行的数量。
我有以下代码
idx = plan_df.groupby('pk_id')['date'].idxmax()
df = df.loc[idx]
df = df.loc[df['pk_id'] == 123]
形成数据框
pk_id date
123 2020-01-03
223 2020-01-02
现在我找到了行数
num = df.shape[0]
我相信可以一行完成。有什么想法吗?
你可以试试
out = df[df['pk_id'].isin([123, 223])].groupby('pk_id', as_index=False)['date'].max()
print(out)
pk_id date
0 123 2020-01-03
1 223 2020-01-02
可以使用pandas查询功能
df.query("pk_id == 123 | pk_id == 223").groupby('pk_id', as_index=False)['date']
我有这样的数据框:
pk_id date
123 2020-01-01
223 2020-01-02
123 2020-01-03
224 2020-01-04
我想找到 pk_id = 123
和 pk_id = 223
以及它们的最新日期并计算这些行的数量。
我有以下代码
idx = plan_df.groupby('pk_id')['date'].idxmax()
df = df.loc[idx]
df = df.loc[df['pk_id'] == 123]
形成数据框
pk_id date
123 2020-01-03
223 2020-01-02
现在我找到了行数
num = df.shape[0]
我相信可以一行完成。有什么想法吗?
你可以试试
out = df[df['pk_id'].isin([123, 223])].groupby('pk_id', as_index=False)['date'].max()
print(out)
pk_id date
0 123 2020-01-03
1 223 2020-01-02
可以使用pandas查询功能
df.query("pk_id == 123 | pk_id == 223").groupby('pk_id', as_index=False)['date']