下面以**+注釋的形式進行記錄
# 為模組新增別名
import pandas as pd
# 建立dataframe
df = pd.read_csv('rfm_trad_flow.csv',encoding = 'gbk')
df = pd.dataframe(columns = ['transid', 'cumid', 'time', 'amount', 'type_label', 'type'])
df.head(5)
# loc是實際序列,比如第一行,第一列
# iloc是按照定義好的行列名
# ix是loc+iloc
# 對dataframe進行資料操作
# 新增一列
df['col1_new'] = df['type']
# 新增一行
df.loc['row_new'] = df.loc[2,:]
# 給某一列/行資料+1
df['transid'] = df['transid'].map(lambda x: x+1)
# 判斷資料並新增資料到新dataframe裡
for i in range(df.iloc[:,0].size):
if df.loc[i,'type'] == 'returned_goods':
# 注意這裡必須是loc,否則會報錯,原因的話可分別列資料查證
df1.loc[i] = df.loc[i]
# 重置序列,改為0,1,2...
df = df.reset_index(drop=true, inplace=true)
# 某列值的頻次,頻率
# 檢查頻數
df['type'].value_counts()
# 檢查頻率
df['type'].value_counts(normalize = true)
1.pandas 讀寫excel,csv,json等見另一篇博文:傳送門2.shift + tab 可檢視函式具體使用方法
3.在jupyter notebook裡可以不同窗格寫指令碼,方便除錯和檢視
4.pandas的多表聯合拼接merge
import pandas as pd
# 讀取第乙個檔案轉成dataframe
df1 = pd.read_excel('test1.xlsx')
# 讀取第二個檔案轉成dataframe
df2 = pd.read_excel('test2.xlsx')
'''df2:是你要merge的物件
how:是連線方式,分為[inner,outer,left,right]與sql類似
on:是兩者需要連線的列,如果是多列,加列表來寫入
left_on,right_on:是指定左/右邊的dataframe以哪個列名或者索引名進行連線,如果前面on寫過,這裡就寫none,否則報錯
left_index,right_index:用左/右邊的dataframe某一列當做連線鍵key
sort:排序列
suffixes:如果兩者有重複列名,重複項怎麼命名,比如第乙個有列名是id,第二個也有列名是id,那麼第二個重複的列名將命名為id_x
copy:預設複製
'''df_res = df1.merge(df2, how='left', on=['使用者id','使用者名稱'], left_on=none,
right_on=none, left_index=false, right_index=false,
sort=false, suffixes=('_x', '_y'), copy=true)
# 排序
df_res.sort_values(by=['在看電影數','想看電影數'])
#df_res.to_excel('res.xlsx',index=none)
pandas常用筆記
1.ix iloc loc 這三個都是用於索引資料的。import numpy as np import pandas as pd data np.arange 12 reshape 3,4 df pd.dataframe data df.loc 0 okdf.iloc 0 okdf.index a...
Pandas常用方法和使用技巧
在python 3 環境下,根據實際使用pandas的一些經驗,簡單總結了一下pandas的使用要點。pandas 有三種結構,都可以指定索引,預設情況下,索引值從0。三種結構分別為 1.series初始化 data 1,2,3,4 a series data b series data,index...
pandas常用函式筆記
篩選元素,判斷是否存在等 df.isin 判斷df中是否有括號中的元素 dataframe data,index,columns,dtype,copy 構造資料框 data data.isin 可以將符合isin 的元素提取出來構造成乙個新的data dataframe 建立乙個datafram物件...