forked from corinnabrungs/msn_tree_library
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlotus_client.py
28 lines (20 loc) · 1.12 KB
/
lotus_client.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import pandas as pd
from date_utils import iso_datetime_now
from meta_constants import MetaColumns
from pandas_utils import read_dataframe, update_dataframes
lotus_prefix = "lotus_"
def read_lotus_dataframe(use_unique_split_inchikeys: bool = True) -> pd.DataFrame:
if use_unique_split_inchikeys:
return read_dataframe("data/lotus_unique_split_inchikey_download.csv")
else:
return read_dataframe("data/lotus_download.csv")
def apply_search_on_split_inchikey(df: pd.DataFrame) -> pd.DataFrame:
lotus = read_lotus_dataframe(use_unique_split_inchikeys=True).drop(columns=["inchikey"])
lotus = lotus.add_prefix(lotus_prefix)
lotus = lotus.rename(columns={lotus_prefix + MetaColumns.split_inchikey: MetaColumns.split_inchikey})
# create df with only split_inchikey and merge in
results = df[[MetaColumns.split_inchikey]].copy()
results = results.merge(lotus, how="left", sort=False, on=MetaColumns.split_inchikey)
# refresh date
results.loc[results[lotus_prefix + "taxon"].notnull(), MetaColumns.date_wikidata_lotus_search] = iso_datetime_now()
return update_dataframes(results, df)