Add a couple of proximity features.
parent
af65d0864f
commit
c6d0e4391e
|
@ -53,3 +53,33 @@ def recode_proximity(df_proximity: pd.DataFrame) -> pd.DataFrame:
|
||||||
"""
|
"""
|
||||||
df_proximity = df_proximity.assign(bool_prox_near=lambda x: x.double_proximity == 0)
|
df_proximity = df_proximity.assign(bool_prox_near=lambda x: x.double_proximity == 0)
|
||||||
return df_proximity
|
return df_proximity
|
||||||
|
|
||||||
|
|
||||||
|
def count_proximity(df_proximity: pd.DataFrame) -> pd.DataFrame:
|
||||||
|
"""
|
||||||
|
The function counts how many times a "near" value occurs in proximity
|
||||||
|
and calculates the proportion of this counts to all proximity values (i.e. relative count).
|
||||||
|
|
||||||
|
Parameters
|
||||||
|
----------
|
||||||
|
df_proximity: pd.DataFrame
|
||||||
|
A dataframe of proximity data.
|
||||||
|
|
||||||
|
Returns
|
||||||
|
-------
|
||||||
|
df_proximity_features: pd.DataFrame
|
||||||
|
A dataframe with the count of "near" proximity values and their relative count.
|
||||||
|
"""
|
||||||
|
if "bool_prox_near" not in df_proximity:
|
||||||
|
df_proximity = recode_proximity(df_proximity)
|
||||||
|
df_proximity["bool_prox_far"] = ~df_proximity["bool_prox_near"]
|
||||||
|
df_proximity_features = df_proximity.groupby("participant_id").sum()[
|
||||||
|
["bool_prox_near", "bool_prox_far"]
|
||||||
|
]
|
||||||
|
df_proximity_features = df_proximity_features.assign(
|
||||||
|
prop_prox_near=lambda x: x.bool_prox_near / (x.bool_prox_near + x.bool_prox_far)
|
||||||
|
)
|
||||||
|
df_proximity_features = df_proximity_features.rename(
|
||||||
|
columns={"bool_prox_near": "freq_prox_near"}
|
||||||
|
).drop(columns="bool_prox_far", inplace=False)
|
||||||
|
return df_proximity_features
|
||||||
|
|
Loading…
Reference in New Issue