Skip to main content

pypi downloads clinicedc

edc-analytics

Build analytic tables from EDC data

Overview

Read your data into a dataframe, for example an EDC screening table:

import pandas as pd
from django_pandas.io import read_frame
from meta_screening.models import SubjectScreening
from edc_analytics.custom_tables import AgeTable, GenderTable

qs_screening = SubjectScreening.objects.all()
df = read_frame(qs_screening)

Convert all numerics to pandas numerics:

cols = [
    "age_in_years",
    "dia_blood_pressure_avg",
    "fbg_value",
    "hba1c_value",
    "ogtt_value",
    "sys_blood_pressure_avg",
]
df[cols] = df[cols].apply(pd.to_numeric)

Pass the dataframe to each Table class

gender_tbl = GenderTable(main_df=df)
age_tbl = AgeTable(main_df=df)
bp_table = BpTable(main_df=df)

In the Table instance,

  • data_df is the supporting dataframe

  • table_df is the dataframe to display. The table_df displays formatted data in the first 5 columns (“Characteristic”, “Statistic”, “F”, “M”, “All”). The table_df has additional columns that contain the statistics used for the statistics displayed in columns [“F”, “M”, “All”].

From above, gender_tbl.table_df is just a dataframe and can be combined with other table_df dataframes using pd.concat() to make a single table_df.

table_df = pd.concat(
    [gender_tbl.table_df, age_tbl.table_df, bp_table.table_df]
 )

Show just the first 5 columns:

table_df.iloc[:, :5]

Like any dataframe, you can export to csv:

path = "my/path/to/csv/folder/table_df.csv"
table_df.to_csv(path_or_buf=path, encoding="utf-8", index=0, sep="|")

Details

Assumptions

The default table assumes:

  • you have gender for all observations.

  • gender is “M”, “F” or from edc.constants MALE, FEMALE

A Table presents data by characteristic per row (such as age, bp, glucose, …). It is a dataframe where the first columns are formatted for presentation and the remining columns are the descriptive statistics used to render the formatted columns (mean, median, sd, range, IQR, proportions).

If a table is stratified by gender, then the formatted row for “Age” might be like this:

| Characteristic | Statistic | F      | M     | All  |
======================================================
| Age (years)    | n         |  1175  | 1000  | 2175 |
|                | 18-34     |    70  |   64  |  134 |
|                | ...etc    |        |       |      |

contains a collection of RowDefinitions

Stratification

Putting together a table

RowDefinitions

RowDefinitions are a collection of RowDefinition.

To build a table use the Table class and override the build_defs method. For example:

Metadata

Release files for edc-analytics 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for edc-analytics 1.0.2
File Size Uploaded
edc_analytics-1.0.2.tar.gz 25.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for edc-analytics 1.0.2
File Interpreter ABI Platform
edc_analytics-1.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 61.4 kB

Release files / edc_analytics-1.0.2.tar.gz

Download URL edc_analytics-1.0.2.tar.gz
Size 25.9 kB
Tags Source
SHA-256 checksum
How to use checksums
0c71a5e80744fc9c3a419173a3ff9ae28b576146f345581940b6a62498999955
BLAKE2b-256 checksum
How to use checksums
77fb0d1e42e7830b1bfa0847f374c31ec6f9ca7cf23334ad125aebe20f400af3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.4

Release files / edc_analytics-1.0.2-py3-none-any.whl

Download URL edc_analytics-1.0.2-py3-none-any.whl
Size 35.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7d96d458c5d2cf8a5915b15da11cff80d13212ed5ff77a70a4ba747d43d13c55
BLAKE2b-256 checksum
How to use checksums
6c3629f7f7b5da8eeb55ede71445765864ec448fc6fbd4250fdac1c5517dcbaa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.4

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page