pandas里map、lambda、merge的使用

pandas里map、lambda、merge的使用

注意:map()为Series的函数,DataFrame不能使用,DataFrame用applymap()

 

# -*- coding:utf-8 -*-

from datetime import datetime
import pandas as pd

def Main():

    print("开始。。。。。")
    print("加载规则数据")
    print(datetime.now().strftime('%Y-%m-%d %H:%M:%S'))

    uname = ['ad', 'host', 'domain', 'url', 'ref', 'time', 'os', 'os_type']
    df_list = pd.read_csv('/11yue_all.txt', header=None,names=uname, sep='\t')
    print("11yue源数据读完。。。。。")

    df_url_ts = pd.read_csv('/babytree.txt', sep=',', header=None,names=['ts', 'url'],dtype={'ts' : str})
    print("url+ts 读完。。。。。")

    target_dir = '/url_ts_result.txt'

    #把time转换成string并替换空格
    df_list['ts'] = df_list['time'].map(lambda x: str(x).replace(' ', '')[0:10])
    print("ts 取完。。。。。")

    df_result = pd.merge(df_list, df_url_ts, how='inner', on=['ts', 'url'])[['ts', 'url']].drop_duplicates()
    print("merge完。。。。。")

    df_result.to_csv(target_dir,header=None,sep='\t',index=False)
    print("文件写入完。。。。。")
    # pd.to_csv(target_dir,header=None,sep='\t')

if __name__ == "__main__":
    Main()
版权声明:本文为博主原创文章,未经博主允许不得转载。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值