Python Forum
unable to automate table creation with crosstab
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
unable to automate table creation with crosstab
#1
So i'm able to automate parts of the code, but for the actual table creation with "crosstab" i can't quite figure it out. Please help me automate the creation of "tab001", "tab002", etc part of this code...

import numpy as np
import pandas as pd
import pyreadstat

data, meta = pyreadstat.read_sav('/home/larry/Downloads/4607.sav')
meta_dict = dict(zip(meta.column_names, meta.column_labels))

my_list = []
for y in meta.column_names:
    my_list.append(y)

tab001 = pd.crosstab(data[my_list[13]].\
    map(meta.variable_value_labels[my_list[13]]), \
    data['qdp2'].map(meta.variable_value_labels['qdp2']), \
    dropna=True, margins=True). \
    loc[meta.variable_value_labels[my_list[13]].values()]. \
    loc[:,meta.variable_value_labels['qdp2'].values()].round(4)

tab002 = pd.crosstab(data[my_list[14]].\
    map(meta.variable_value_labels[my_list[14]]), \
    data['qdp2'].map(meta.variable_value_labels['qdp2']), \
    dropna=True, margins=True). \
    loc[meta.variable_value_labels[my_list[14]].values()]. \
    loc[:,meta.variable_value_labels['qdp2'].values()].round(4)

tab003 = pd.crosstab(data[my_list[15]].\
    map(meta.variable_value_labels[my_list[15]]), \
    data['qdp2'].map(meta.variable_value_labels['qdp2']), \
    dropna=True, margins=True). \
    loc[meta.variable_value_labels[my_list[15]].values()]. \
    loc[:,meta.variable_value_labels['qdp2'].values()].round(4)

tab004 = pd.crosstab(data[my_list[16]].\
    map(meta.variable_value_labels[my_list[16]]), \
    data['qdp2'].map(meta.variable_value_labels['qdp2']), \
    dropna=True, margins=True). \
    loc[meta.variable_value_labels[my_list[16]].values()]. \
    loc[:,meta.variable_value_labels['qdp2'].values()].round(4)

tab005 = pd.crosstab(data[my_list[17]].\
    map(meta.variable_value_labels[my_list[17]]), \
    data['qdp2'].map(meta.variable_value_labels['qdp2']), \
    dropna=True, margins=True). \
    loc[meta.variable_value_labels[my_list[17]].values()]. \
    loc[:,meta.variable_value_labels['qdp2'].values()].round(4)

tables = [tab001, tab002, tab003, tab004, tab005]

with open('/home/larry/Downloads/tabfreq.txt','w') as outfile:
    for x in tables:
        x.to_string(outfile)
        outfile.write("\n\n")
        outfile.write("###############################################################################\n")
        outfile.write("###############################################################################")
        outfile.write("\n\n")
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Enter Crosstab Data Directly moneyball 1 1,443 Oct-15-2019, 12:58 AM
Last Post: moneyball

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020