Skip to content

Python

The Python package lydite needs Python 3.10 or newer and has no required dependencies; pandas is optional. Function names mirror the R package. Results are byte-identical to the JavaScript and R analyzers.

pip install "git+https://github.com/zhihz/lydite#subdirectory=python/lydite"
import lydite

respondents = lydite.lyd_read("qualtrics_export.csv", keep_columns=["satisfaction"])
results = lydite.lyd_score(respondents)

lydite.lyd_report(results, "lydite_report.html", key_variables=["satisfaction"])
print(lydite.lyd_methods_text(results, preregistered=True))
df = lydite.to_pandas(results)   # needs pandas
Function Purpose
lyd_read(source, id_column=, answer_columns=, required_columns=, keep_columns=) Read a Qualtrics, jsPsych or plain export. answer_columns is a dict {fieldId: column}.
lyd_score(respondents, weak_outcome=, single_medium_outcome=, rules=, canary_words=) Score respondents
lyd_report(results, path=None, ...) HTML report (returns the HTML; writes it if path is given)
lyd_methods_text(results, ...) Methods paragraph
to_pandas(results) One row per respondent as a DataFrame

The package also installs the command lydite-analyze, with the same options as the command line tool:

lydite-analyze responses.csv --out results/ --key-var satisfaction