pandas DataFrame.shift()函數(shù)的具體使用
pandas DataFrame.shift()函數(shù)可以把數(shù)據(jù)移動指定的位數(shù)
period參數(shù)指定移動的步幅,可以為正為負(fù).axis指定移動的軸,1為行,0為列.
eg: 有這樣一個DataFrame數(shù)據(jù):
import pandas as pd data1 = pd.DataFrame({ 'a': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 'b': [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] }) print data1 a b 0 0 9 1 1 8 2 2 7 3 3 6 4 4 5 5 5 4 6 6 3 7 7 2 8 8 1 9 9 0
如果想讓 a和b的數(shù)據(jù)都往下移動一位:
data2 = data1.shift(axis=0) print data2 a b 0 NaN NaN 1 0.0 9.0 2 1.0 8.0 3 2.0 7.0 4 3.0 6.0 5 4.0 5.0 6 5.0 4.0 7 6.0 3.0 8 7.0 2.0 9 8.0 1.0
如果是在行上往右移動一位:
data3 = data1.shift(axis=1) print data3 a b 0 NaN 0.0 1 NaN 1.0 2 NaN 2.0 3 NaN 3.0 4 NaN 4.0 5 NaN 5.0 6 NaN 6.0 7 NaN 7.0 8 NaN 8.0 9 NaN 9.0
如果想往上或者往左移動,可以指定(periods=-1):
data4 = data1.shift(periods=-1, axis=0) print data4 a b 0 1.0 8.0 1 2.0 7.0 2 3.0 6.0 3 4.0 5.0 4 5.0 4.0 5 6.0 3.0 6 7.0 2.0 7 8.0 1.0 8 9.0 0.0 9 NaN NaN
一個例子:
這里有一組某車站各個小時的總進(jìn)站人數(shù)和總出站人數(shù)的數(shù)據(jù):
entries_and_exits = pd.DataFrame({ 'ENTRIESn': [3144312, 3144335, 3144353, 3144424, 3144594, 3144808, 3144895, 3144905, 3144941, 3145094], 'EXITSn': [1088151, 1088159, 1088177, 1088231, 1088275, 1088317, 1088328, 1088331, 1088420, 1088753] })
要求計算每個小時該車站進(jìn)出站人數(shù)
思路: 把第n+1小時的總?cè)藬?shù)-第n小時的總?cè)藬?shù),就是這個小時里的進(jìn)出站人數(shù)
entries_and_exits_hourly = entries_and_exits - entries_and_exits.shift(axis=0)print(entries_and_exits_hourly.fillna(0)) #最后用0來填補NaN ENTRIESn EXITSn 0 0.0 0.0 1 23.0 8.0 2 18.0 18.0 3 71.0 54.0 4 170.0 44.0 5 214.0 42.0 6 87.0 11.0 7 10.0 3.0 8 36.0 89.0 9 153.0 333.0
到此這篇關(guān)于pandas DataFrame.shift()函數(shù)的具體使用的文章就介紹到這了,更多相關(guān)pandas DataFrame.shift()內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JAVA及PYTHON質(zhì)數(shù)計算代碼對比解析
這篇文章主要介紹了JAVA及PYTHON質(zhì)數(shù)計算代碼對比,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-06-06在Python中操作字符串之startswith()方法的使用
這篇文章主要介紹了在Python中操作字符串之startswith()方法的使用,是Python入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-05-05Python中關(guān)于面向?qū)ο笾欣^承的詳細(xì)講解
面向?qū)ο缶幊?(OOP) 語言的一個主要功能就是“繼承”。繼承是指這樣一種能力:它可以使用現(xiàn)有類的所有功能,并在無需重新編寫原來的類的情況下對這些功能進(jìn)行擴展2021-10-10