使用pandas對兩個dataframe進(jìn)行join的實例
需求:
兩個文件,一個文件為統(tǒng)計報表,里面含有手機(jī)號,另一個文件為手機(jī)號段歸屬地,含有手機(jī)號碼前七位對應(yīng)的地區(qū)。需要對統(tǒng)計報表進(jìn)行處理,將手機(jī)號所在的歸屬地加入到統(tǒng)計報表中,使用pandas提供的join功能來實現(xiàn),代碼如下:
#coding=utf-8
from pandas import Series,DataFrame
import pandas as pd
#reader1 = pd.read_csv('Dm_Mobile.txt',iterator=True,encoding="gb2312")
#df1 = reader1.get_chunk(10)
#reader2 = pd.read_csv('201604.csv',iterator=True,encoding="gb2312")
#df2 = reader.get_chunk(10)
#讀取兩個csv文件,生成dataframe
df1 = pd.read_csv('Dm_Mobile.csv',encoding="gb2312")
df2 = pd.read_csv('201604.csv',encoding="gb2312")
#截取手機(jī)號前七位,作為新列添加到dataframe
df2['p7s'] = Series([str(x)[:7] for x in Series(df2[u'手機(jī)號'])])
df2['p7i'] = df2['p7s'].astype("int64")
#在兩個dataframe的手機(jī)前七位列上創(chuàng)建索引
index_df1 = df1.set_index('MobileNumber')
index_df2 = df2.set_index(['p7i'])
#以手機(jī)號前七位列為join列,對兩個dataframe進(jìn)行join
result = pd.concat([index_df1, index_df2], axis=1, join='inner')
#選取需要顯示的列,重新生成result
result = result.reindex(columns=[u'積分商城訂單號', u'手機(jī)號',u'產(chǎn)品編碼',u'商品名稱',u'商品價格',u'數(shù)量',u'虛擬碼',u'消費時間',u'時間',u'兌換渠道商',u'MobileArea'])
#寫入到excel文件中
writer = pd.ExcelWriter('pandas_simple.xlsx')
result.to_excel(writer, sheet_name=u'設(shè)計院',index=False)
writer.save()
以上這篇使用pandas對兩個dataframe進(jìn)行join的實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Pandas查詢數(shù)據(jù)df.query的使用
本文主要介紹了Pandas查詢數(shù)據(jù)df.query的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
python命令行執(zhí)行腳本找不到模塊ModuleNotFoundError問題
這篇文章主要介紹了python命令行執(zhí)行腳本找不到模塊ModuleNotFoundError問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06
python中resample函數(shù)實現(xiàn)重采樣和降采樣代碼
今天小編就為大家分享一篇python中resample函數(shù)實現(xiàn)重采樣和降采樣代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02

