PD操作

# -*- coding: utf-8 -*- 
# @Time     : 2018/7/6 17:10 
# @Author   : 
# @File     : 
# @Description  : 

import pandas as pd
import pymongo

pd.set_option('expand_frame', False)

MONGO_URI = 'mongodb://XXX:XXX'
MONGO_DB = 'LogData'
MONGO_TABLE = 'LogData'

client = pymongo.MongoClient(MONGO_URI)
db = client[MONGO_DB]


def get_data_from_queue(queueName):
    data = pd.DataFrame(list(db[MONGO_TABLE].find({'queueName': queueName})))
    return data


def select_data_from_queue(df, queueName, output_filename):
    print('正在處理queue:', queueName)
    ser = df['Contact_Alias'].notnull().value_counts()
    print('Contact_Alias不為空的數(shù)據(jù)為:', ser.loc[True])
    print('Contact_Alias為空的數(shù)據(jù)為:', ser.loc[False])

    # Contact_Alias 不為空的情況
    df_alias_not_null = df[df['Contact_Alias'].notnull()]

    # Contact_Alias 為空, Contact_QuanPin 不以wxid開頭的情況
    df_alias_is_null = df[df['Contact_Alias'].isnull() & df['Contact_QuanPin'].notnull()]
    condition = df_alias_is_null['Contact_QuanPin'].apply(lambda x: not x.startswith('wxid'))
    df_auxiliary = df_alias_is_null[condition]
    print('通過Contact_QuanPin新增數(shù)據(jù):', len(df_auxiliary))

    df_output = pd.concat([df_alias_not_null, df_auxiliary], axis=0)
    df_output = df_output[['phone', 'Contact_Alias', 'Contact_QuanPin']]

    df_output.reset_index(inplace=True, drop=True)
    num = len(df_output)
    print('最終輸出數(shù)據(jù)條數(shù);', num)
    print()

    fill_values = df_output.loc[(df_output['Contact_Alias'].isnull()), 'Contact_QuanPin'].values
    df_output.loc[(df_output['Contact_Alias'].isnull()), 'Contact_Alias'] = fill_values
    # print(df_output)
    df_output.to_csv('./data/' + output_filename + '_wechat_' + str(num) + '.txt', columns=['phone', 'Contact_Alias'],
                     header=None, index=False, sep='\t')


def run(queueName, output_filename):
    df = get_data_from_queue(queueName)
    select_data_from_queue(df, queueName, output_filename)


if __name__ == '__main__':
    run('qbrq_1000', output_filename='XXXX')
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容