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

2021-09-11 10:48:39 字數 2958 閱讀 5073

#會用到的包

import pandas

import numpy

import datetime12

3#排序

#方法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) #返回每一行上的值的排名,越小的值排名越靠前。12

#索引重置

#將指定列設為索引

##方法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型別 1

會用到的包 import pandas import numpy import datetime 排序 方法1.a data.sort 將data中的值按生序排列可用於series,不可用於dataframe dataframe object has no attribute sort 方法2 a ...

資料處理 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...