#會用到的包
import pandas
import numpy
import datetime
#排序
#方法1.
a=data.
sort
() #將data中的值按生序排列可用於series,不可用於dataframe:'dataframe' object has no attribute 'sort'。
#方法2
a=data.
sort_values
(by=
'date'
,axis=
0,ascending=true) #將data上的每一行按date列上值的大小由小到大排列。
a=data.
sort_values
('date'
,axis=
0,ascending=true) #by=也可以省略。
#方法3
a=data.
sort_index
(axis=
0,ascending=true,by=
'date'
) #作用同前。
a=data.
sort_index
(axis=
0,ascending=true,
'date'
) #作用同前
#方法4
a=data[::
-1] #將資料按索引倒置,簡單,推薦。
#排名
a=data.
rank
(axis=
0,ascending=false) #返回每一列上的值的排名,ascending=false表示值越大排名越靠前,ascending預設為true。
a=data.
rank
(axis=
1) #返回每一行上的值的排名,越小的值排名越靠前。
#索引重置
#將指定列設為索引
##方法1
data.index=data[
'date'
] #將date列設為索引。
##方法2
date=data[
'date'
]data.index=dates
#將整數數列設為索引
data.
reset_index
() #將索引設為從0開始的整數數列,原索引列得到保留並變成第1列值。
data.
reset_index
(drop=true) #將索引設為從0開始的整數數列,原索引列不保留。
#將日期索引轉化為指定資料型別
##將日期由str轉為datetime
dates=
[dt.datetime.
strptime
(date,
'%y%m%d'
)for date in data.date] #date為str型別。
data.index=dates
##將日期由num轉為datetime
dates=
[dt.datetime.
strptime
(str
(date)
,'%y%m%d'
)for date in data.date] #date為num型別。
data.index=dates
#缺失值處理
#判斷
data.
isnull
() #判斷data中的值是否為缺失值,是返回true,不是返回false。
data.
notnull
() #判斷data中的值是否為非缺失值,是返回false,不是返回true。
#提取data=data[data.
notnull()
] #提取data中非缺失值的元素。
data=data[data.col1.
notnull()
] #提取data中col1列非缺失值所在的所有行。
s=data.col1[data.col1.
notnull()
] #提取data中col1列裡的非缺失值。
#填充##將非缺失值替換為缺失值
data.col1[0]
=numpy.nan #將指定值替換為缺失值。
data.col1=numpy.nan #將指定列整列替換為缺失值。
##將缺失值用其他值填充
data.
fillna
(value,inplace=
) #用指定值value填充缺失值。inplace=true填充結果直接覆蓋原資料,false填充結果用新資料集表示,不覆蓋原資料。
data.
fillna(0
) #用0填充缺失值,填充結果用新資料集表示,不改變原資料集。
data.
fillna(0
,inplace=true) #用0填充缺失值,填充結果直接覆蓋原資料集。
data.
fillna
(method=
'',axis=
0,limit=
,inplace=
) #用前/後值填充缺失值。
-method=
:'ffill'用前乙個值填充,'pad'用前乙個值填充,'bfill'用後乙個值填充,'backfill'用後乙個值填充。
-axis=
:0為按列方向,1按行方向,預設為0.
-limit=n:連續缺失處僅填充n個。
-inplace=
:true填充結果直接覆蓋原資料,false填充結果用新資料集表示,不覆蓋原資料。
#刪除data.
dropna
(axis=
,how=
'',thresh=
) data.
dropna
() #刪除有缺失值的行。
data.
dropna
(axis=
1) #刪除有缺失值的列。
data.
dropna
(axis=
1,thresh=
3) #刪除有至少3個缺失值的列。
data.
dropna
(axis=
1,how=
'any'
) #每列有1個缺失值就整列刪除。
data.
dropna
(axis=
1,how=
'all'
) #每列所有值都缺失時刪除該列。
#去重
data.
duplicated
() #判斷每一行是否相對於之前的行重複。
data.
duplicated
(data.columns) #同data.
duplicated
(),即判斷每一行是否相對於之前的行重複。
data.
duplicated([
'col1'
]) #判斷指定列上的元素是否相對於之前的值重複。
data.
duplicated([
'col1'
,'col2'
]) #判斷指定列中的每一行是否相對於之前的行重複。
data.
drop_duplicates
() #刪除所有重複行。
data.
drop_duplicates([
'col1'
]) #判斷指定列上是否有列方向上的重複值,若有,則刪除重複值所在行。
df.drop_duplicates([
'col1'
], keep=
'last'
) # keep引數指定保留重複值中哪乙個,』first』保留第乙個,刪除其他,』last』保留最後乙個,』false』刪除所有。
下篇預告:
-資料處理主要方法_dataframe型別_2: 切片、合併、數列生成。
資料處理主要方法 DataFrame型別 1
會用到的包 import pandas import numpy import datetime12 3 排序 方法1.a data.sort 將data中的值按生序排列可用於series,不可用於dataframe dataframe object has no attribute sort 方法...
資料處理 pandas資料處理優化方法小結
資料處理時使用最多的就是pandas庫,pandas在資料處理方面很強大,整合了資料處理和資料視覺化。pandas的視覺化使用的是matplotlib。回到主題 計算資料的某個欄位的所有值,對其欄位所有值進行運算 處理的字段資料為時間戳,需要計算該時間戳距離現在的時間,單位為天。一般方法 使用現在的...
資料處理方法總結
讀取資料 data pd.read csv print data.head 10 處理資料 1.縮小資料,查詢資料篩選,query相當於sql語句,進行條件查詢 data data.query x 1.0 x 1.25 y 2.5 y 2.75 2.處理時間處理 time value pd.to d...