Skip to content

Commit

Permalink
Merge pull request #71 from klarman-cell-observatory/boli
Browse files Browse the repository at this point in the history
Fixed a bug in fill_na
  • Loading branch information
bli25 committed Jul 17, 2021
2 parents e4faf84 + 950a104 commit c19bc60
Showing 1 changed file with 8 additions and 3 deletions.
11 changes: 8 additions & 3 deletions pegasusio/aggr_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,10 @@
def _get_fillna_dict(df: pd.DataFrame) -> dict:
""" Generate a fillna dict for columns in a df """
fillna_dict = {}
for column in df:
hasna = df.isna().sum(axis=0)
for column in hasna.index[hasna > 0]:
if is_categorical_dtype(df[column]):
df[column] = df[column].astype(str)
if df[column].dtype.kind == "b":
fillna_dict[column] = False
elif df[column].dtype.kind in {"i", "u", "f", "c"}:
Expand Down Expand Up @@ -145,7 +148,8 @@ def _aggregate_unidata(self, unilist: List[UnimodalData]) -> UnimodalData:
barcode_metadata_dfs = [unidata.barcode_metadata for unidata in unilist]
barcode_metadata = pd.concat(barcode_metadata_dfs, axis=0, sort=False, copy=False)
fillna_dict = _get_fillna_dict(barcode_metadata)
barcode_metadata.fillna(value=fillna_dict, inplace=True)
if len(fillna_dict) > 0:
barcode_metadata.fillna(value=fillna_dict, inplace=True)
_check_categorical(barcode_metadata)

var_dict = {}
Expand All @@ -160,7 +164,8 @@ def _aggregate_unidata(self, unilist: List[UnimodalData]) -> UnimodalData:
keys = ["featurekey"] + feature_metadata.columns.intersection(other.feature_metadata.columns).values.tolist()
feature_metadata = feature_metadata.merge(other.feature_metadata, on=keys, how="outer", sort=False, copy=False) # If sort is True, feature keys will be changed even if all channels share the same feature keys.
fillna_dict = _get_fillna_dict(feature_metadata)
feature_metadata.fillna(value=fillna_dict, inplace=True)
if len(fillna_dict) > 0:
feature_metadata.fillna(value=fillna_dict, inplace=True)
_check_categorical(feature_metadata)

matrices = self._merge_matrices(feature_metadata, unilist, modality)
Expand Down

0 comments on commit c19bc60

Please sign in to comment.