12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- import numpy as np
- import pandas as pd
- from datetime import datetime
- filter = 8
- project_id = 9
- first_seller_id = 1
- submission_header = ['sub_field_id', 'submission_id', 'field_id', 'form_id', 'value']
- fields_header = ['field_id', 'form_id', 'page_no', 'field_label', 'field_type',
- 'field_value', 'field_order', 'field_show_on_user_page', 'is_field_primary',
- 'field_is_editable', 'field_options', 'is_deletion_allowed']
- def multi_select(entry):
- if entry is np.nan:
- return ''
- entries = entry.split(':', 2)[-1][1:-1].split(';')
- return ','.join([e.split(':')[-1][1:-1] for e in entries if not e.startswith('i')])
- submission_df = pd.read_csv('sandbox/flohmarkt/qCBshrQfrm_submission_fields.csv',
- names=submission_header, index_col=['sub_field_id'])
- fields_df = pd.read_csv('sandbox/flohmarkt/qCBshrQfrm_fields.csv',
- names=fields_header, index_col=['field_id'])
- # print(fields_df.head())
- submission_df = submission_df[submission_df['form_id'] == filter]
- submission_df = pd.merge(submission_df, fields_df, how='left', on=['field_id'])
- # print(submission_df.head())
- submission_df = submission_df.pivot(index='submission_id', columns=['field_label'], values='value')
- # submission_df.columns = [108,109,110,111,113,114,115,117,118,120,121,122,123,125,126,128,129]
- submission_df['Artikel'] = submission_df['Artikel'].apply(multi_select)
- submission_df['Mithilfe'] = submission_df['Mithilfe'].apply(multi_select)
- submission_df['Freiwillige Mithilfe'] = submission_df['Freiwillige Mithilfe'].apply(multi_select)
- submission_df['PayPal'] = submission_df['PayPal'].apply(multi_select)
- fields_df = fields_df[(fields_df['form_id'] == filter) & (fields_df['field_label'] != 'Divider')]
- labels = fields_df['field_label'].to_dict().values()
- submission_df.drop_duplicates(inplace=True)
- submission_df[labels].to_csv(f'sandbox/flohmarkt/submission_{filter}.csv')
- submission_df[['E-Mail-Adresse', 'Nachname', 'Vorname']].to_csv(f'sandbox/flohmarkt/newsletter_{filter}.csv', index=False, sep=';')
- # with open(f'sandbox/flohmarkt/emails_{filter}.txt', 'w') as fwh:
- # fwh.write(';'.join(emails))
- submission_df.sort_values(by=['Nachname', 'Vorname'], ignore_index=True, inplace=True)
- submission_df.reset_index(inplace=True)
- submission_df['project_id'] = project_id
- submission_df['seller_id'] = submission_df.index + first_seller_id
- submission_df['cdate'] = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
- export_fields = ['project_id', 'seller_id', 'Nachname', 'Vorname', 'Adresse', 'PLZ', 'Wohnort', 'E-Mail-Adresse', 'Telefon', 'cdate', 'cdate']
- submission_df[export_fields].to_csv(f'sandbox/flohmarkt/upload_{filter}.csv', header=False, index=False)
- # project_id seller_id name first_name address zip_code place mail phone mdate cdate
- # a:8:{i:0;s:14:""Größen 50/56"";i:1;s:14:""Größen 62/68"";i:2;s:14:""Größen 74/80"";i:3;s:10:""Schlafsack"";i:4;s:39:""Säuglingsbedarf (Flaschenwärmer etc.)"";i:5;s:9:""Spielzeug"";i:6;s:7:""Bücher"";i:7;s:15:""Winter-Fußsack"";}
|