其他:
資料處理的主要操作,包括:排序、排名、索引重置、缺失值處理、去重。
#會用到的包
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...