aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/sec_certs/utils
diff options
context:
space:
mode:
authorAdam Janovsky2023-03-10 21:43:29 +0100
committerAdam Janovsky2023-03-10 21:43:29 +0100
commit474291023d534e68dd0f5b2c6bc89c66bebd7387 (patch)
tree7a22801b3bb7cce8c4b32b7cb8ac81cb4812ab1a /src/sec_certs/utils
parent0787c7e2fb4472e56af887c8e2168f0aa6490e23 (diff)
parent983bc3ce1a50ec7c081d54f03febefc2bce971cc (diff)
downloadsec-certs-474291023d534e68dd0f5b2c6bc89c66bebd7387.tar.gz
sec-certs-474291023d534e68dd0f5b2c6bc89c66bebd7387.tar.zst
sec-certs-474291023d534e68dd0f5b2c6bc89c66bebd7387.zip
Merge branch 'main' into reference-analysis
Diffstat (limited to 'src/sec_certs/utils')
-rw-r--r--src/sec_certs/utils/pandas.py9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/sec_certs/utils/pandas.py b/src/sec_certs/utils/pandas.py
index 749292e3..4b8b9504 100644
--- a/src/sec_certs/utils/pandas.py
+++ b/src/sec_certs/utils/pandas.py
@@ -285,15 +285,14 @@ def filter_to_cves_within_validity_period(cc_df: pd.DataFrame, cve_dset: CVEData
def expand_df_with_cve_cols(df: pd.DataFrame, cve_dset: CVEDataset) -> pd.DataFrame:
df = df.copy()
-
- df["n_cves"] = df.related_cves.map(lambda x: len(x) if x is not np.nan else 0)
+ df["n_cves"] = df.related_cves.map(lambda x: 0 if pd.isna(x) else len(x))
df["cve_published_dates"] = df.related_cves.map(
- lambda x: [cve_dset[y].published_date.date() for y in x] if x is not np.nan else np.nan # type: ignore
+ lambda x: [cve_dset[y].published_date.date() for y in x] if not pd.isna(x) else np.nan # type: ignore
)
df["earliest_cve"] = df.cve_published_dates.map(lambda x: min(x) if isinstance(x, list) else np.nan)
df["worst_cve_score"] = df.related_cves.map(
- lambda x: max([cve_dset[cve].impact.base_score for cve in x]) if x is not np.nan else np.nan
+ lambda x: max([cve_dset[cve].impact.base_score for cve in x]) if not pd.isna(x) else np.nan
)
"""
@@ -303,7 +302,7 @@ def expand_df_with_cve_cols(df: pd.DataFrame, cve_dset: CVEDataset) -> pd.DataFr
To properly treat this, the average should be taken across CVEs with >0 base_socre.
"""
df["avg_cve_score"] = df.related_cves.map(
- lambda x: np.mean([cve_dset[cve].impact.base_score for cve in x]) if x is not np.nan else np.nan
+ lambda x: np.mean([cve_dset[cve].impact.base_score for cve in x]) if not pd.isna(x) else np.nan
)
return df