多次选择熊猫中的相同行



我有一个列的值列表,我想从 Pandas 数据帧中选择它。此列表具有重复的值,我想以与列表中相同的顺序选择相应的行并重复。例如,假设我有以下数据框:

id    value    date
1     0.5      01-01-20
2     0.3      01-02-20
3     0.4      01-03-20
4     0.8      01-04-20

而这个列表:

dates=(01-01-20, 01-01-20, 01-02-20)

我想要这样的过滤数据框:

id    value    date
1     0.5      01-01-20
1     0.5      01-01-20
2     0.3      01-02-20

我尝试使用该功能.isin()但它没有考虑重复项。我想这可以在 for 循环中完成,但是有没有一种"优雅"的方法可以做到这一点?

使用DataFrame.reindex应该像DataFrame.loc一样更可取的东西,因为如果没有匹配(但列的必要唯一值(,也可以工作:

dates=('01-01-20', '01-01-20', '01-02-20')
df = df.set_index('date').reindex(dates).reset_index().reindex(df.columns, axis=1)
print (df)
id  value      date
0   1    0.5  01-01-20
1   1    0.5  01-01-20
2   2    0.3  01-02-20

最新更新