原創 pandas 實現vlookup功能

2021-10-01 16:16:51 字數 1443 閱讀 3084

[code language="python"]

import numpy as np

import pandas as pd

引入相應的模組

pd.set_option('display.float_format', lambda x: '%.5f' % x)

禁止使用科學記數法

df=pd.dataframe(pd.read_csv('userpai.csv'))

讀取csv

df1=pd.dataframe(pd.read_csv('userpai0.csv',skiprows=1)

skiprows : list-like or integer, default none

需要忽略的行數(從檔案開始處算起),或需要跳過的行號列表(從0開始)。

讀取csv2

new = df.merge(df1, on='user_id', how='left')

'''merge 通過鍵拼接列

how:指的是合併(連線)的方式有inner(內連線),left(左外連線),right(右外連線),outer(全外連線);預設為inner

on : 指的是用於連線的列索引名稱。必須存在右右兩個dataframe物件中,如果沒有指定且其他引數也未指定則以兩個dataframe的列名交集做為連線鍵

left_on:左則dataframe中用作連線鍵的列名;這個引數中左右列名不相同,但代表的含義相同時非常有用。

right_on:右則dataframe中用作 連線鍵的列名

left_index:使用左則dataframe中的行索引做為連線鍵

right_index:使用右則dataframe中的行索引做為連線鍵

sort:預設為true,將合併的資料進行排序。在大多數情況下設定為false可以提高效能

suffixes:字串值組成的元組,用於指定當左右dataframe存在相同列名時在列名後面附加的字尾名稱,預設為('_x','_y')

copy:預設為true,總是將資料複製到資料結構中;大多數情況下設定為false可以提高效能

indicator:在 0.17.0中還增加了乙個顯示合併資料中**情況;如只來自己於左邊(left_only)、兩者(both)

'''new.to_csv('./out1.csv')

寫入csv

new.sort_values('user_id')

根據 某一咧進行排序

new.sort_values('date',ascending=false).head(10)

#降序排列 顯示 10行

new[new.user_id>2006]

#過濾 user_id 大於2006

new[new.date.str.startswith('2006')]

#字串過濾

5868037 qq號

[email protected] qq郵箱

原創 fast wcsnicmp 演算法實現

對於做路徑過濾或者檔案過濾驅動的朋友來說,fast wcsnicmp函式可以獲得更佳的效能,在負載重的情況下比較明顯。對比微軟的wcsnicmp函式速度快一倍左右,對於學習演算法優化的朋友,這也是個比較好的例子。size t fastwcsnicmp wchar t first,wchar t se...

pandas實現行轉列

hive進行大資料分析資料經常用到行轉列,pandas也可以的。不解釋直接上 coding utf 8 import pandas as pd c df pd.dataframe c print df df left df key df values 0 df values str.split ex...

pandas實現中文排序

在我們使用pandas過程中有時會遇到排序,尤其是中文排序,例如excel排序,按姓名拼音排序等等,而pandas預設的排序並不能滿足我們的中文排序,所以有了這個中文排序方式 一 首先實現中文的拼音排序 def to pinyin s 轉拼音 param s 字串或列表 type s str or ...