Python 資料處理 小函式

2021-08-09 17:50:47 字數 2211 閱讀 4075

preface:最近在整內比賽mdd。遇到一些資料處理方面的事情,用python pandas是最為方便的,遠比我想象的強大。幾行**就完成了資料的處理,多個檔案的融合,再用sklearn裡面的模型跑一跑,就能得到結果。為此,經常記錄下來,對資料處理的應用。

df = pd.read_csv('%s/%s' % (input_path, file_name)):read_csv()讀入檔案函式,檔案以tab隔開則read_csv(filename, sep="\t")。分兩個變數:input_path和file_name傳入更佳。

poilngnotnull = pd.notnull(df["poi_lng"]):notnull()篩選函式。資料預處理:取列名為poi_lng不為空的行。

df.loc[poilngnotnull, 'poi_lng']:loc()函式。定位到poilngnotnull行,'poi_lng'列

df.loc[poilngnotnull, 'geohash'] = map(geo_hash, df.loc[poilngnotnull,poi_lat], df.loc[poilngnotnull, poi_lng]):loc()、map()、geo_hash()(見下面)函式的結合

取出經緯度,應用geo_hash函式,產生乙個geohash,寫到df新的列中

結果:df增加了一列,列名為geohash,其中每行的資料為每行對應的poilat、poilng通過python的geohash對映的值

pd.get_dummies(df):將df中非數字型別的進行one-hot編碼。參考: pandas使用get_dummies進行one-hot編碼(題外ps:使用xgboost訓練不好,one-hot編碼適合lr、svm之類的)

資料操作

讀入資料

df = pd.read_csv("filename")

df.columns = list('abcd')(讀取無列名的時候,可用陣列賦值)

列印資料

pandas.set_option('display.max_rows',none):參考dataframe的資料print輸出 顯示為...省略號

取資料loc

參考:python pandas.dataframe選取、修改資料最好用.loc,.iloc,.ix

取出某列資料:df["columns_name"]、df.loc[:, "columns_name"](第乙個引數表示所有行,第二個引數表示某列)

取出某些列資料:df[["columns_name1", "columns_name2"]]、df.loc[:,["

columns_name1

", "

columns_name2

"]]取出第n行資料:df.loc[n, :]

取出第2-n、第n+2到m行的資料:df.loc[[2:n, n+2lm], :]

取出第2-n行、某兩列的資料:df.loc[2:n, ["

columns_name1

", "

columns_name2

"]]iloc:若已知道columns_name是具體哪一列,可直接用數值代替。

data.iat[1, 1] 聚合

df = df.groupby(['date', 'hour', 'area_id']).agg().reset_index()

根據天、時、區域id進行聚合,統計溫度、風、雨量的平均值,然後用reset_index()重置

datatime

參考:python datetime處理時間

實現日期的加減:from datetime import timedelta. 參考:python 使用datetime模組timedelta實現日期時間相加

時間戳轉化:from datetime import *; date.fromtimestamp()

string datetime互轉

str = '2012-11-19';date_time = datetime.datetime.strptime(str,'%y-%m-%d')

date_time.strftime('%y-%m-%d');

python資料處理小技巧 2

1,拆分含有多種分隔符的字串 import re s sdjjg,jsa jjalg tjljl.ljei,jks dji 方法 使用s.split 分割單個符合 使用正規表示式的re.split 方法,一次性拆分字串,使用 號表示分割連續多個 newstr re.split r t s print...

資料處理函式

資料處理函式 1,計算字串長度 主流資料庫系統都提供了計算字串長度的函式,在mysql oracle db2中這個函式 名稱為length,而在mssqlserver中這個函式的名稱則為len。這個函式接受乙個字串類 型的字段值做為引數,返回值為這個字串的長度。下面的sql語句計算每乙個名稱不為空 ...

資料處理函式

1 lower 轉換小寫 2 upper 轉換大寫 3 substr 擷取子字串 4 length 取長度 例如查詢員工姓名長度為5的 5 trim 去空格,去掉的是首尾空格 6 to date 將字串轉換成日期 7 to char 將日期或數字轉換成字串 8 to number 將字串轉換成數字 ...