создание массива 3xX в пандах Dataframe Python - PullRequest
0 голосов
/ 20 ноября 2018
#!/usr/bin/env python

from pandas import DataFrame, Series
from simple_salesforce import Salesforce
from config import *


    qry_result = sf.query("SELECT Phone, Name, Account.Name FROM Contact")
    logging.debug('SF QueryResult TotalSize {0}'.format(qry_result['totalSize']))
    df = DataFrame(qry_result['records'])

    is_done = qry_result['done'];
    while not is_done:
        try:
            qry_result = sf.query_more(qry_result['nextRecordsUrl'], True)
            df = df.append(DataFrame(qry_result['records']))

            if qry_result['done']:
                is_done = True;
                logging.debug('SF completed')

        except NameError as e:
                logging.error('SOQL failed', e)
                SystemExit(17)

    df = df.drop('attributes', axis=1)
    return df

def extract_numbers_and_canonicalize(df):
    phone_numbers = []
    account_numbers = []
    name = []

    for row in df.itertuples():
        print(row)
        logging.info(row)

        phone = extract(row, 'Phone' + ';')
        if phone:
            phone_numbers.append(phone)

        account_numbers = extract(row, 'account_numbers' + ';')
        if account_numbers:
            account_numbers.append(account_numbers)

        name = extract(row, 'name')
        if name:
            name.append(name)


    header = [phone_numbers, account_numbers, name]

    series = Series(data=header)
    unique_series = series.unique()


    return DataFrame(data=unique_series, columns=['numbers'';''names' ';' 'accountnames'])

def extract(tuple, column):
    if not hasattr(tuple, column):
        return None

    value = getattr(tuple, column)
    if not value:
        return None

    return canonicalize(value)



def query_contacts_and_write_csv():
    contacts = query_sf_contacts()
    numbers = extract_numbers_and_canonicalize(contacts)


    DataFrame.to_csv(numbers, encoding='utf-8', path_or_buf=CSV_RESULT_FILE, index=False)


query_contacts_and_write_csv()

Здравствуйте, Python People,

Может быть, кто-то может помочь мне с моей проблемой.Я хотел бы создать CSV-файл с 3 массивами.Я предполагаю, что я должен изменить unique_series на что-то другое.Работает ли это даже с подходом, который я использую (если я возьму только номера телефонов, например, он работает просто отлично)Заранее спасибо за советы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...