Skip to main content

Use pandas with clinicedc/edc projects

Project description

pypi actions codecov downloads

edc-pdutils

Use pandas with the Edc

Using the management command to export to CSV and STATA

The export_models management command requires you to log in with an account that has export permissions.

The basic command requires an app_label (-a) and a path to the export folder (-p)

By default, the export format is CSV but delimited using the pipe delimiter, |.

Export one or more modules

python manage.py export_models -a ambition_subject -p /ambition/export

The -a excepts more than one app_label

python manage.py export_models -a ambition_subject,ambition_prn,ambition_ae -p /ambition/export

Export data in CSV format or STATA format

To export as CSV where the delimiter is |

python manage.py export_models -a ambition_subject -p /ambition/export

To export as STATA dta use option -f stata

python manage.py export_models -a ambition_subject -p /ambition/export -f stata

Export encrypted data

To export encrypted fields include option --decrypt:

python manage.py export_models -a ambition_subject -p /ambition/export  --decrypt

Note: If using the --decrypt option, the user account will need PII_EXPORT permissions

Export with a simple file name

To export using a simpler filename that drops the tablename app_label prefix and does not include a datestamp suffix.

Add option --use_simple_filename.

python manage.py export_models -a ambition_subject -p /ambition/export  --use_simple_filename

Export for a country only

Add option --country.

python manage.py export_models -a ambition_subject -p /ambition/export  --country="uganda"

Export manually

To export Crf data, for example:

from edc_pdutils.df_exporters import CsvCrfTablesExporter
from edc_pdutils.df_handlers import CrfDfHandler

app_label = 'ambition_subject'
csv_path = '/Users/erikvw/Documents/ambition/export/'
date_format = '%Y-%m-%d'
sep = '|'
exclude_history_tables = True

class MyDfHandler(CrfDfHandler):
    visit_tbl = f'{app_label}_subjectvisit'
    exclude_columns = ['form_as_json', 'survival_status','last_alive_date',
                       'screening_age_in_years', 'registration_datetime',
                       'subject_type']

class MyCsvCrfTablesExporter(CsvCrfTablesExporter):
    visit_column = 'subject_visit_id'
    datetime_fields = ['randomization_datetime']
    df_handler_cls = MyDfHandler
    app_label = app_label
    export_folder = csv_path

sys.stdout.write('\n')
exporter = MyCsvCrfTablesExporter(
    export_folder=csv_path,
    exclude_history_tables=exclude_history_tables
)
exporter.to_csv(date_format=date_format, delimiter=sep)

To export INLINE data for any CRF configured with an inline, for example:

class MyDfHandler(CrfDfHandler):
    visit_tbl = 'ambition_subject_subjectvisit'
    exclude_columns = ['form_as_json', 'survival_status','last_alive_date',
                       'screening_age_in_years', 'registration_datetime',
                       'subject_type']


class MyCsvCrfInlineTablesExporter(CsvCrfInlineTablesExporter):
    visit_columns = ['subject_visit_id']
    df_handler_cls = MyDfHandler
    app_label = 'ambition_subject'
    export_folder = csv_path
    exclude_inline_tables = [
        'ambition_subject_radiology_abnormal_results_reason',
        'ambition_subject_radiology_cxr_type']
sys.stdout.write('\n')
exporter = MyCsvCrfInlineTablesExporter()
exporter.to_csv(date_format=date_format, delimiter=sep)

Settings

EXPORT_FILENAME_TIMESTAMP_FORMAT: True/False (Default: False)

By default a timestamp of the current date is added as a suffix to CSV export filenames.

By default a timestamp of format %Y%m%d%H%M%S is added.

EXPORT_FILENAME_TIMESTAMP_FORMAT may be set to an empty string or a valid format for strftime.

If EXPORT_FILENAME_TIMESTAMP_FORMAT is set to an empty string, “”, a suffix is not added.

For example:

# default
registered_subject_20190203112555.csv

# EXPORT_FILENAME_TIMESTAMP_FORMAT = "%Y%m%d"
registered_subject_20190203.csv

# EXPORT_FILENAME_TIMESTAMP_FORMAT = ""
registered_subject.csv

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

edc_pdutils-1.0.0.tar.gz (58.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

edc_pdutils-1.0.0-py3-none-any.whl (75.6 kB view details)

Uploaded Python 3

File details

Details for the file edc_pdutils-1.0.0.tar.gz.

File metadata

  • Download URL: edc_pdutils-1.0.0.tar.gz
  • Upload date:
  • Size: 58.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.4

File hashes

Hashes for edc_pdutils-1.0.0.tar.gz
Algorithm Hash digest
SHA256 520935ab937a42021ec6db7d20114e16a79be46093edff89d9c76d14c0349305
MD5 b0abd228079f56447c29b47d46bd121a
BLAKE2b-256 b465280c406d81cec2fc4ead42e0b15dc7dcbf15ef32e5d9d5df690731d6187a

See more details on using hashes here.

File details

Details for the file edc_pdutils-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: edc_pdutils-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 75.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.4

File hashes

Hashes for edc_pdutils-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 57a5dcc401a01fc374b863d8069c35e2f08bb383fc35177627d701c8713a56d6
MD5 191689a5264060998e4dcafcd6b0df02
BLAKE2b-256 a34d56b45ff0a28c2f8b00ae92ab0a0ec5a8196d9dd773299df9508e06ecd84d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page