diff options
| author | Adam Janovsky | 2023-03-10 21:43:29 +0100 |
|---|---|---|
| committer | Adam Janovsky | 2023-03-10 21:43:29 +0100 |
| commit | 474291023d534e68dd0f5b2c6bc89c66bebd7387 (patch) | |
| tree | 7a22801b3bb7cce8c4b32b7cb8ac81cb4812ab1a /src/sec_certs/utils | |
| parent | 0787c7e2fb4472e56af887c8e2168f0aa6490e23 (diff) | |
| parent | 983bc3ce1a50ec7c081d54f03febefc2bce971cc (diff) | |
| download | sec-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.py | 9 |
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 |
