資料處理主要方法 DataFrame型別 1

2021-09-11 05:17:52 字數 4071 閱讀 3360

#會用到的包

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...