[英]Python: Filtering CSV with conditions from another CSV
我正在尝试使用 Pandas 编写 Python 代码以过滤掉 CSV 文件,具体取决于从另一个 CSV 文件设置的条件。
我要过滤的 CSV 看起来像这样:
date product
01/05/2020 Test Product 1
02/05/2020 Test Product 1
03/05/2020 Test Product 1
04/05/2020 Test Product 1
05/05/2020 Test Product 1
06/05/2020 Test Product 1
07/05/2020 Test Product 1
01/05/2020 Test Product 2
02/05/2020 Test Product 2
03/05/2020 Test Product 2
04/05/2020 Test Product 2
05/05/2020 Test Product 2
06/05/2020 Test Product 2
07/05/2020 Test Product 2
CSV 的条件如下:
product start_date
Test Product 1 01/05/2020
Test Product 2 04/05/2020
我要做的是过滤第一个 CSV 以便任何在 01/05 之后具有 start_date 的测试产品都将删除相关行。 例如,测试产品 2 的 start_date 为 04/05/2020,这意味着在第一个 CSV 中,我试图删除该产品的 01/05、02/05 和 03/05 的行。
这将是所需的 output:
date product
01/05/2020 Test Product 1
02/05/2020 Test Product 1
03/05/2020 Test Product 1
04/05/2020 Test Product 1
05/05/2020 Test Product 1
06/05/2020 Test Product 1
07/05/2020 Test Product 1
04/05/2020 Test Product 2
05/05/2020 Test Product 2
06/05/2020 Test Product 2
07/05/2020 Test Product 2
最好的方法是什么? 很长一段时间以来,我一直在尝试以多种方式使用数据框,但还没有找到任何正确的脚本......
提前谢谢了!
我们可以使用boolean indexing
与Series.map
df_filtered = df1.loc[df1['date'].ge(df1['product']\
.map(df2.set_index('product')['start_date']))]
print(df_filtered)
date product
0 01/05/2020 Test Product 1
1 02/05/2020 Test Product 1
2 03/05/2020 Test Product 1
3 04/05/2020 Test Product 1
4 05/05/2020 Test Product 1
5 06/05/2020 Test Product 1
6 07/05/2020 Test Product 1
10 04/05/2020 Test Product 2
11 05/05/2020 Test Product 2
12 06/05/2020 Test Product 2
13 07/05/2020 Test Product 2
为了读取您的 csv 文件,我们使用pd.read_csv
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.