218 lines
4.5 KiB
Python
218 lines
4.5 KiB
Python
|
# ---
|
||
|
# jupyter:
|
||
|
# jupytext:
|
||
|
# text_representation:
|
||
|
# extension: .py
|
||
|
# format_name: percent
|
||
|
# format_version: '1.3'
|
||
|
# jupytext_version: 1.14.5
|
||
|
# kernelspec:
|
||
|
# display_name: straw2analysis
|
||
|
# language: python
|
||
|
# name: straw2analysis
|
||
|
# ---
|
||
|
|
||
|
# %%
|
||
|
import pandas as pd
|
||
|
|
||
|
from features.esm_JCQ import dict_JCQ_demand_control_reverse
|
||
|
|
||
|
# %%
|
||
|
limesurvey_questions = pd.read_csv(
|
||
|
"E:/STRAWbaseline/survey637813+question_text.csv", header=None
|
||
|
).T
|
||
|
|
||
|
# %%
|
||
|
limesurvey_questions
|
||
|
|
||
|
# %%
|
||
|
limesurvey_questions[["code", "text"]] = limesurvey_questions[0].str.split(
|
||
|
r"\.\s", expand=True, n=1
|
||
|
)
|
||
|
|
||
|
# %%
|
||
|
limesurvey_questions
|
||
|
|
||
|
# %%
|
||
|
demand_reverse_lime_rows = (
|
||
|
limesurvey_questions["text"].str.startswith(" [Od mene se ne zahteva,")
|
||
|
| limesurvey_questions["text"].str.startswith(" [Imam dovolj časa, da končam")
|
||
|
| limesurvey_questions["text"].str.startswith(
|
||
|
" [Pri svojem delu se ne srečujem s konfliktnimi"
|
||
|
)
|
||
|
)
|
||
|
control_reverse_lime_rows = limesurvey_questions["text"].str.startswith(
|
||
|
" [Moje delo vključuje veliko ponavljajočega"
|
||
|
) | limesurvey_questions["text"].str.startswith(
|
||
|
" [Pri svojem delu imam zelo malo svobode"
|
||
|
)
|
||
|
|
||
|
# %%
|
||
|
demand_reverse_lime = limesurvey_questions[demand_reverse_lime_rows]
|
||
|
demand_reverse_lime.loc[:, "qid"] = demand_reverse_lime["code"].str.extract(
|
||
|
r"\[(\d+)\]"
|
||
|
)
|
||
|
control_reverse_lime = limesurvey_questions[control_reverse_lime_rows]
|
||
|
control_reverse_lime.loc[:, "qid"] = control_reverse_lime["code"].str.extract(
|
||
|
r"\[(\d+)\]"
|
||
|
)
|
||
|
|
||
|
# %%
|
||
|
limesurvey_questions.loc[89, "text"]
|
||
|
|
||
|
# %%
|
||
|
limesurvey_questions[limesurvey_questions["code"].str.startswith("JobEisen")]
|
||
|
|
||
|
# %%
|
||
|
demand_reverse_lime
|
||
|
|
||
|
# %%
|
||
|
control_reverse_lime
|
||
|
|
||
|
# %%
|
||
|
participant_info = pd.read_csv(
|
||
|
"C:/Users/junos/Documents/FWO-ARRS/Analysis/straw2analysis/rapids/data/raw/p031/participant_baseline_raw.csv",
|
||
|
parse_dates=["date_of_birth"],
|
||
|
)
|
||
|
|
||
|
# %%
|
||
|
participant_info_t = participant_info.T
|
||
|
|
||
|
# %%
|
||
|
rows_baseline = participant_info_t.index
|
||
|
|
||
|
# %%
|
||
|
rows_demand = rows_baseline.str.startswith("JobEisen") & ~rows_baseline.str.endswith(
|
||
|
"Time"
|
||
|
)
|
||
|
|
||
|
# %%
|
||
|
rows_baseline[rows_demand]
|
||
|
|
||
|
# %%
|
||
|
limesurvey_control = (
|
||
|
participant_info_t[rows_demand]
|
||
|
.reset_index()
|
||
|
.rename(columns={"index": "question", 0: "score_original"})
|
||
|
)
|
||
|
|
||
|
# %%
|
||
|
limesurvey_control
|
||
|
|
||
|
# %%
|
||
|
limesurvey_control["qid"] = (
|
||
|
limesurvey_control["question"].str.extract(r"\[(\d+)\]").astype(int)
|
||
|
)
|
||
|
|
||
|
# %%
|
||
|
limesurvey_control["question"].str.extract(r"\[(\d+)\]").astype(int)
|
||
|
|
||
|
# %%
|
||
|
limesurvey_control["score"] = limesurvey_control["score_original"]
|
||
|
|
||
|
# %%
|
||
|
limesurvey_control["qid"][0]
|
||
|
|
||
|
# %%
|
||
|
rows_demand_reverse = limesurvey_control["qid"].isin(
|
||
|
dict_JCQ_demand_control_reverse.keys()
|
||
|
)
|
||
|
limesurvey_control.loc[rows_demand_reverse, "score"] = (
|
||
|
4 + 1 - limesurvey_control.loc[rows_demand_reverse, "score_original"]
|
||
|
)
|
||
|
|
||
|
# %%
|
||
|
JCQ_DEMAND = "JobEisen"
|
||
|
JCQ_CONTROL = "JobControle"
|
||
|
dict_JCQ_demand_control_reverse = {
|
||
|
JCQ_DEMAND: {
|
||
|
3: " [Od mene se ne zahteva,",
|
||
|
4: " [Imam dovolj časa, da končam",
|
||
|
5: " [Pri svojem delu se ne srečujem s konfliktnimi",
|
||
|
},
|
||
|
JCQ_CONTROL: {
|
||
|
2: " |Moje delo vključuje veliko ponavljajočega",
|
||
|
6: " [Pri svojem delu imam zelo malo svobode",
|
||
|
},
|
||
|
}
|
||
|
|
||
|
# %%
|
||
|
limesurvey_control
|
||
|
|
||
|
# %%
|
||
|
test = pd.DataFrame(
|
||
|
data={"question": "one", "score_original": 3, "score": 3, "qid": 10}, index=[0]
|
||
|
)
|
||
|
|
||
|
# %%
|
||
|
pd.concat([test, limesurvey_control]).reset_index()
|
||
|
|
||
|
# %%
|
||
|
limesurvey_control["score"].sum()
|
||
|
|
||
|
# %%
|
||
|
rows_demand_reverse
|
||
|
|
||
|
# %%
|
||
|
dict_JCQ_demand_control_reverse[JCQ_DEMAND].keys()
|
||
|
|
||
|
# %%
|
||
|
limesurvey_control
|
||
|
|
||
|
# %%
|
||
|
DEMAND_CONTROL_RATIO_MIN = 5 / (9 * 4)
|
||
|
DEMAND_CONTROL_RATIO_MAX = (4 * 5) / 9
|
||
|
|
||
|
JCQ_NORMS = {
|
||
|
"F": {
|
||
|
0: DEMAND_CONTROL_RATIO_MIN,
|
||
|
1: 0.45,
|
||
|
2: 0.52,
|
||
|
3: 0.62,
|
||
|
4: DEMAND_CONTROL_RATIO_MAX,
|
||
|
},
|
||
|
"M": {
|
||
|
0: DEMAND_CONTROL_RATIO_MIN,
|
||
|
1: 0.41,
|
||
|
2: 0.48,
|
||
|
3: 0.56,
|
||
|
4: DEMAND_CONTROL_RATIO_MAX,
|
||
|
},
|
||
|
}
|
||
|
|
||
|
# %%
|
||
|
JCQ_NORMS[participant_info.loc[0, "gender"]][0]
|
||
|
|
||
|
# %%
|
||
|
participant_info_t.index.str.startswith("JobControle")
|
||
|
|
||
|
# %%
|
||
|
columns_baseline = participant_info.columns
|
||
|
|
||
|
# %%
|
||
|
columns_demand = columns_baseline.str.startswith(
|
||
|
"JobControle"
|
||
|
) & ~columns_baseline.str.endswith("Time")
|
||
|
|
||
|
# %%
|
||
|
columns_baseline[columns_demand]
|
||
|
|
||
|
# %%
|
||
|
participant_control = participant_info.loc[:, columns_demand]
|
||
|
|
||
|
# %%
|
||
|
participant_control["id"] = participant_control.index
|
||
|
|
||
|
# %%
|
||
|
participant_control
|
||
|
|
||
|
# %%
|
||
|
pd.wide_to_long(
|
||
|
participant_control,
|
||
|
stubnames="JobControle",
|
||
|
i="id",
|
||
|
j="qid",
|
||
|
sep="[",
|
||
|
suffix="(\\d+)]",
|
||
|
)
|