1. 程式人生 > >python pandas常用資料處理方法

python pandas常用資料處理方法

pandas



1、header = 0 不同於 header = None
	header = 0 表示 第0行為列
	header = None 表示讀取的時候 認為沒有標題,全是資料
	可以用 skiprows = 1 跳過列名

2、pandas 獲取指定的行列資料
	df.iloc[0:2,[0,3]]  #讀取 第 [0,2)行的第[0,3)列

3、建立 df = DataFram(data,index = '',columns = '')
	dates = pd.date_range('20130101', periods=3)
	data = pd.DataFrame(data,index=dates,columns=['A','B','C'])

4、檢視列標題,行標題,資料描述,轉置
	df.columns
	df.index
	df.describe() #帶括號 檢視資料描述,包括均值,方差,分位點
	df.T 

5、排序
	df.sort_values(by='B') # 按照 列 B 進行排序 預設升序
	df.sort_index(axis=1,ascending=False)  # 根據索引 排序 axis = 1 表示 分別對每一行排序,axis= 0表示對每一列排序
	ascending = False 表示按照降序排序

6、行列選擇
	df.loc[:,['A','B']] #選擇所有行的 A,B列
	df[0:3] #選擇[0,3)行
	df.iloc[3] #選擇第三行資料
	df.iloc[3:5,0:2] # [3,5)行 [0,2)列資料
	df.iloc[3:5,0:2]  # 這裡都是切片
	df.iloc[[1,2,4],[0,2]] #用列表進行跳躍選擇 行列 注意這樣的話 行選擇需要是列表需要多加一層[]  [[1,2,3],[0:2]]是錯誤的
	df.iloc[1,1] = df.iat[1,1] #獲取位置[1,1] 的元素(單個元素可以不寫成列表形式)

7、資料選擇、賦值
	(1)對某一列進行資料選擇
		df[df.A > 0] # 判斷 A列值是否大於0 返回boolean值
		df[df > 0] = -df # 把 df(可以看作矩陣) 中大於0的元素 取反
	(2) 把 D列賦值為 np.array()
		 df.loc[:,'D'] = np.array([5] * len(df))

8、缺失值處理
	(1)去除包含缺失值的行(只要有缺失值就去掉)
		df1.dropna(how='any')		 
	(2)把缺失值改為5
		df1.fillna(value=5)
	(3)判斷是否是缺失值
		 pd.isna(df1) # 返回 bool矩陣,注意 是 用 pd呼叫 df

9、資料統計
	(1)求均值
		 df.mean(axis = 1) # 對每一行求均值 預設為按照列求均值

10、groupby用法
		data = [
		    ['男',20,98],
		    ['男',24,88],
		    ['女',35,89],
		    ['女',27,90]
		]

		df = pd.DataFrame(data,columns=['gender','age','score'])
		print(df)
		print(df.groupby("gender").size())
		print(df.groupby("gender").mean())

		Output:
		
			  gender  age  score
		0      男   20     98
		1      男   24     88
		2      女   35     89
		3      女   27     90
		gender
		女    2
		男    2
		dtype: int64
		         age  score
		gender             
		女       31.0   89.5
		男       22.0   93.0







 

 

 

參考:

http://pandas.pydata.org/pandas-docs/stable/10min.html 官方10分鐘教程

https://blog.csdn.net/brucewong0516/article/details/79096633