繁体   English   中英

如何根据 Python/Pandas 数据框中的多个条件删除行?

[英]How do I remove rows based on multiple conditions in Python / Pandas dataframe?

我有一张看起来像这样的桌子:

鉴定 软件 版本 日期
0 微软办公软件 2个 2022-05-25
0 微软办公软件 1个 2022-03-21
0 Adobe Photoshop 2个 2022-04-20
1个 Adobe Photoshop 1个 2021-04-04

“已识别”列是我使用此代码创建的列:

import pandas as pd
import datetime as dt

dfcheck = pd.read_csv('version-data.csv', encoding='utf8')
df = pd.DataFrame(dfcheck)

olderdata = dt.date.today() - pd.DateOffset(years=1)

df['Identified'] = (df['Date'] <= olderdata).astype(int)

在这里我标记了所有超过一年的东西。 所以现在我要做的是创建一个新的数据框,它显示所有已识别的软件包。 这是我正在寻找的输出:

鉴定 软件 版本 日期
0 Adobe Photoshop 2个 2022-04-20
1个 Adobe Photoshop 1个 2021-04-04

我如何实现这一目标?

您可以使用groupby.filter

out = df.groupby('Software').filter(lambda x: (x.Identified==1).any())

print (out)

   Identified          Software   Version        Date
2           0   Adobe Photoshop         2  2022-04-20
3           1   Adobe Photoshop         1  2021-04-04

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM