Python 學習筆記1

2021-09-19 01:25:46 字數 2969 閱讀 6522

寫下來以便自己記憶。

描述性統計方法:首先判斷變數的型別,乙個分類變數計算統計量、頻次value_counts,用直方圖;兩個分類標準化堆疊柱形圖crosstab,統計檢驗用卡方檢驗;乙個分類乙個連續變數用groupby分類盒須圖boxplot,統計檢驗用兩樣本t檢驗(多分類則用方差分析);兩個連續變數pivot透視表散點圖,統計檢驗用相關分析(注意相關分析和回歸分析不同,相關分析用來確認變數是否有關係,回歸分析是已經確認有關係後再確認變數間是什麼函式關係).

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

import os

os.chdir(r'f:\download\中文名')

#檔名中有中文,不能直接讀取,需要分兩步

trad_flow=pd.read_csv("rfm_trad_flow.csv",encoding='gbk')

trad_flow.head(10)

f=trad_flow.groupby(['cumid','type'])[['transid']].count()

f.head()

#%%透檢視 兩個分類乙個連續

f_trans=pd.pivot_table(f,index='cumid',columns='type',values='transid')

f_trans.head()

#%%缺失值處理

f_trans['special_offer']=f_trans['special_offer'].fillna(0)

f_trans["interest"]=f_trans['special_offer']/(f_trans['special_offer']+f_trans['normal'])

f_trans.head()

#%%m=trad_flow.groupby(['cumid','type'])[['amount']].sum()

m.head()

#%%m_trans=pd.pivot_table(m,index='cumid',columns='type',values='amount')

m_trans.head()

#%%m_trans['special_offer']=m_trans['special_offer'].fillna(0)

m_trans['returned_goods']=m_trans['returned_goods'].fillna(0)

m_trans["value"]=m_trans['normal']+m_trans['special_offer']+m_trans['returned_goods']

m_trans.head()

#%%標準化時間

from datetime import datetime

import time

def to_time(t):

out_t=time.mktime(time.strptime(t,'%d%b%y:%h:%m:%s'))

return out_t

a="14jun09:17:58:34"

print(to_time(a))

#%%trad_flow.head()

r=trad_flow.groupby(['cumid'])[['time_new']].max()

r.head()

#%%sklearn預處理 等深分箱

from sklearn import preprocessing

threshold=pd.qcut(f_trans['interest'],2,retbins=true)[1][1]

#%%#)# 返回每個數對應的分組,且額外返回bins,即每個邊界值 二分值陣列

binarizer=preprocessing.binarizer(threshold=threshold)

interest_q=pd.dataframe(binarizer.transform(f_trans['interest'].values.reshape(-1,1)))

interest_q.index=f_trans.index

interest_q.columns=["interest"]

interest_q

#%%threshold=pd.qcut(m_trans['value'],2,retbins=true)[1][1]

binarizer = preprocessing.binarizer(threshold=threshold)

value_q = pd.dataframe(binarizer.transform(m_trans['value'].values.reshape(-1,1)))

value_q.index=m_trans.index

value_q.columns=["value"]

value_q

#%%threshold = pd.qcut(r["time_new"], 2, retbins=true)[1][1]

binarizer = preprocessing.binarizer(threshold=threshold)

time_new_q = pd.dataframe(binarizer.transform(r["time_new"].values.reshape(-1,1)))

time_new_q.index = r.index

time_new_q.columns = ["time"]

time_new_q

#%%標籤

analysis=pd.concat([interest_q,value_q,time_new_q],axis=1)

analysis.head()

label =

#analysis = analysis[['interest','value','time']]

analysis.head()

#%%

Python學習筆記(1)

在工作的業餘時間學習了一下python,個人覺得如果有下liunx下工作的習慣話,寫一些小的python指令碼很容易提高工作效率,以下主要是針對python與c 的區別而寫的一些學習筆記,共同溝通一起進步。1 python中不用 表示語句塊,而是用 來表示乙個塊的開始,而用縮進來表示各個語句塊之間的...

Python 學習筆記 1

2.讀了 python簡明教程 前面5章內容,很久之前看過一遍,現在是重溫,加做練習。教程是python v2.x,許多地方都不一樣了 help,print,exit 需要以函式的標準形式來替換,help print exit 之前的 raw input 被去掉,統一作input 3.python ...

python學習筆記(1 )

1 在確定自己不會匯入多個同名函式 從不同的模組匯入 的情況下,可以使用 from math import sqrt from 模組 import 函式 這樣就可以直接使用sqrt 9 而不用每次都用math.sqrt 9 2 可以使用變數來引用函式 及python中的大多數物件 如 import ...