【发布时间】:2021-03-10 01:57:48
【问题描述】:
我有一个像这样的df:
df = DataFrame({'CODE': ['AB12', 'AB12', 'CD12', 'CD12', 'CD14', 'CD14'], 'DATE': ['2021-02-01', '2021-03-06', '2021-02-01', '2021-03-06', '2021-02-01', '2021-03-06'], 'VALUE':[0,4,5,5,0,0]})
CODE DATE VALUE
AB12 2021-02-01 0
AB12 2021-03-06 4
CD12 2021-02-01 5
CD12 2021-03-06 5
CD14 2021-02-01 0
CD14 2021-03-06 0
我需要能够根据 CODE 和 DATE 从原始 df 中提取非常具体的记录对。
所以,我的最终输出应该是这样的:
CODE DATE VALUE
AB12 2021-02-01 0
CD12 2021-03-06 5
CD14 2021-03-06 0
我做了一些研究,并认为我可以通过使用如下字典来使其工作:
my_filter = {'CODE':['AB12','CD12','CD14'], 'DATE':['2021-02-01','2021-03-06','2021-03-06']}
然后使用过滤:
res = df[df.isin(my_filter).sum(1) == 2]
问题是当我尝试这个时,结果似乎只是返回了CODE 和DATE 的所有可能组合,大概是因为它正在评估每个实例中是否存在 CODE 或 DATE 中的值。
res
CODE DATE VALUE
0 AB12 2021-02-01 0
1 AB12 2021-03-06 4
2 CD12 2021-02-01 5
3 CD12 2021-03-06 5
4 CD14 2021-02-01 0
5 CD14 2021-03-06 0
如何创建一个字典来将每个 CODE 与对应的 DATE 配对?
谢谢
【问题讨论】: