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

2021-09-26 06:12:25 字數 3768 閱讀 9750

其他:

資料處理的主要操作,包括:排序、排名、索引重置、缺失值處理、去重。

#會用到的包

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』刪除所有。

Pandas的DataFrame資料型別

pandas的dataframe資料型別 縱軸表示不同索引axis 0,橫軸表示不同列axis 1 dataframe型別建立 1.從二維ndarray物件建立 import pandas as pd import numpy as np d pd.dataframe np.arange 10 re...

SAP 作業型別主資料

建立kl01 修改kl02 顯示kl03 解釋一下字段 作業型別類別 1 手工輸入,手工分配 就是為了說明作業的使用方法。標誌 1 根據計畫作業自動計算 price indicator 有三種 計畫 標誌 你在此設定乙個 標誌,他將帶到比如kp26裡面,當然那kp26依舊可以允許你修改計畫 標誌,如...

DataFrame中字段的型別判斷

說明 如果某一列中有多種型別的資料,那麼會被識別為object。單單是str也是object 方法 dtype 或者 dtypes 直接上 吧 導包import numpy as np import pandas as pd 建立資料 型別輸出 data y1 dtype dtype int64 d...