時系列データ解析で処理パイソン-07

パラジウムとしてインポートパンダ
NPとしてインポートnumpyの
パンダインポートシリーズから、データフレーム

#时间序列的操作基础
日時インポート日時から
「」」
T =日時(2016,9,10)
印刷(T)#2016年9月10日午後12時00分:00

DATA_LIST = [
日時(2016,9,1)、
日時(2016,9,10)、
日時(2017,9,1)、
日時(2017,9,20)、
日時(2017,10,1)
]
プリント(DATA_LIST)
#[datetime.datetimeの(2016、9、1、0、0)、datetime.datetimeの(2016、9、10、0、0)、datetime.datetimeの(2017、9、1、0、0) 、datetime.datetimeの(2017、9、20、0、0)、datetime.datetimeの(2017、10、1、0、0)]
、S1 =シリーズ(np.random.rand(5)、インデックス= DATA_LIST)
プリント( S1)
#2016年9月1日0.437216
#2016年9月10日0.002021
#2017年9月1日0.990085
#2017年9月20日0.635123
#2017年10月1日0.504584
#DTYPE:のfloat64
プリント(s1.values)#[0.74523743 0.67846232 0.33464572 0.66881491 0.34169192】
プリント(S1。インデックス)
#1 DatetimeIndex([ '2016年9月1日'、 '2016年9月10日'、 '2017年9月1日'、 '2017年9月20日'
# '2017年10月1日']、
#1 DTYPE = 'datetime64 [NS]'、FREQ =なし)
プリント(S1 [1])#0.3247607714134729
プリント(S1 [日時(2016,9,10)])#0.3247607714134729
プリント(S1 [ '2016年9月10日']) #0.3247607714134729
プリント(S1 [ '20160910'])#0.3247607714134729
プリント(S1 [ '2016から09'])
#2016年9月1日0.713300
#2016年9月10日0。265708
#DTYPE:のfloat64
プリント(S1 [ '2016'])
#2016年9月1日0.139233
#2016年9月10日0.595806
#DTYPE:のfloat64
"" "

" ""
data_list_new = pd.date_range( "2016年1月1日"、期間= 100 、FREQ = "5H")#100世代の合計5時間のそれぞれの発生時間を示す
プリント(data_list_new)
#DatetimeIndex([ '2016年1月1日00:00:00'、「2016年1月1日05:00 :00 '
#1' 2016年1月1日午前10時00分00秒'' 2016年1月1日15時00分00秒'
#' 2016年1月1日午前20時00分00秒'' 2016-01- 02午前一時00分00秒「
#」2016年1月2日午前6時00分〇 〇秒「」2016年1月2日11時00分○○秒「
#」2016年1月2日16時○○分○○秒「」 2016年1月2日午後9時00分00秒'
#' 2016年1月3日02:00:00 ''2016年1月3日午前7時00'分00秒、
# 『2016年1月3日12時00分00秒』、 『2016年1月3日午後5時00分〇 〇秒』
#「2016年1月3日夜10時00分00秒」、「2016年1月4日午前3時00分00秒」、
#「2016年1月4日午前八時00分00秒」、「2016年1月4日午後01時:00' 、
# '2016年1月4日午前18時〇 〇分00秒'、 '2016年1月4日午前23時00分〇 〇秒'、
'2016年1月5日午前4時00分00秒'、「2016-01- 05 9時00'分00秒、
# 『2016年1月5日夜02時00分00秒』、 『2016年1月5日午後07時00分〇 〇秒』、
『2016年1月6日午後12時00分○○秒』、 ' 2016年1月6日5時00'分00秒、
# 『2016年1月6日午前10時00分○○秒』、 『2016年1月6日午後03時00分00秒』、
#「2016年1月6日午前20時00分: 00' 、 『2016年1月7日午前一時00分00秒』、
『2016年1月7日6時00分00秒』、 『2016年1月7日午前11時00分○○秒』、
#「2016年1月7日午後四時00'分00秒「2016年1月7日午後9時00分00秒」、
#「2016年1月8日午前2時00分00秒」、「2016年1月8日7時〇 〇分00秒」
#「2016年1月8日午前12時00分00秒」、「2016年1月8日午前17時00分○○秒」、
#「2016年1月8日午前22時00分00秒」、「2016年1月9日午前3時:00' 、
# '2016年1月9日午前八時00分00秒'、 '2016年1月9日午後01時00分00秒'、
'2016年1月9日午後06時00分○○秒'、「2016-01- 09午前23時00'分00秒、
# 『2016年1月10日午前4時00分○○秒』、 『2016年1月10日午前9時00分00秒』、
『2016年1月10日14時00分00秒』、 ' 2016年1月10日19:00:00' 、
# '2016年1月11日00:00:00'、 '2016年1月11日5時00分00秒'、
#「2016年1月11日10:00: 00' 、 '2016年1月11日15:00:00'、
'2016年1月11日午後八時00分00秒'、 '2016年1月12日01:00:00'、
#「2016年1月12日六時00'分00秒「2016年1月12日11時00分00秒」、
#「2016年1月12日午前16時〇 〇分00秒」、「2016年1月12日21時00分○○秒」
#「2016年1月13日2時00分00秒」、「2016年1月13日7時00分00秒」、
#「2016年1月13日12時00分00秒」、「2016年1月13日午後05時00分:00' 、
# '2016年1月13日22時00分00秒'、 '2016年1月14日午前3時00分00秒'、
'2016年1月14日8時00分○○秒'、「2016-01- 14夜01時00'分00秒、
# 『2016年1月14日午後6時00分00秒』、 『2016年1月14日23時00分00秒』、
『2016年1月15日午前4時00分00秒』、 ' 2016年1月15日9時〇 〇分00'秒、
# 『2016年1月15日午後二時00分○○秒』、 『2016年1月15日19時○○分00秒』、
#「2016年1月16日午後12時00分: 00' 、 『2016年1月16日5時00分00秒』、
『2016年1月16日午前10時00分00秒』、 『2016年1月16日午前15時00分00秒』、
#「2016年1月16日午後08時00'分○○秒'2016年1月17日01:00:00'、
# '2016年1月17日06:00:00'、 '2016年1月17日11:00:00'、
#1 '2016年1月17日午後4時00分00秒'、 '2016年1月17日21時00分00秒'、
'2016年1月18日02:00:00'、「2016年1月18日07:00 :00' 、
# '2016年1月18日12:00:00'、 '2016年1月18日午後05時00分00秒'、
'2016年1月18日午後09時00分00秒'、「2016-01- 19午前3時00'分00秒、
# 『2016年1月19日8時00分00秒』、 『2016年1月19日夜01時00分00秒』、
『2016年1月19日午後06時00分〇 〇秒』、 ' 2016年1月19日午後11時00'分〇 〇秒、
# 『2016年1月20日午前四時00分00秒』、 『2016年1月20日午前9時00分00秒』、
#「2016年1月20日夜02時00分: 00' 、 『2016年1月20日19時00分○○秒』、
『2016年1月21日〇時00分00秒』、 『2016年1月21日5時00分00秒』、
#「2016年1月21日10:00:00' 、'2016年1月21日午後03時○○分○○秒']、
#1 DTYPE = 'datetime64 [NS]'、= '5H' FREQ)
シリーズ= S2(np.random.rand(100)、インデックス= data_list_new)
印刷(S2)
"" "

" ""
#-----------------
#時系列データサンプリングと描画
#t_range = pd.date_range( "2016年1月1日"、 "2016年12月31日")
#Print(t_range)
のDatetimeIndex([ '2016年1月1日'、 '2016年1月2日' '2016年1月3日'、 '2016年1月4日'、
'2016年1月5日'、 '2016年1月6日'、 '2016年1月7日'、 '2016年1月8日'
# '2016年1月9日'、 '2016年1月10日'、
#...
# '2016年12月22日'、 '2016年12月23日'、 '2016年12月24日'、「2016から12 -25 '
#' 2016年12月26日'' 2016年12月27日'' 2016年12月28日''2016年12月29'日
# '2016年12月30日'、 '2016年12月31日']、
#1 DTYPE = 'datetime64 [NS]'、長さ= 366、FREQ = 'D')
一連S1 =#(np.random.randn(LEN(t_range))、インデックス= t_range)
#Print(S1)
#Print(S1 [ "2016から01"]。平均())#0.05316056209771481
s1.resample =#s1_month 。( "M")の平均( )# サンプリングされた値が月にとり、平均値
#印刷(s1_month)
#2016年1月31日0.175917
#2016年2月29日-0.018886
#2016年3月31日- 0.131760
#2016年4月30日-0.134704
#2016年5月31日0.147767
#2016年6月30日0.382015
#2016年7月31日0.163278
#2016年8月31日-0.079203
#2016年9月30日0.184607
#2016-10- 0.055851 31は、
#2016年11月30日0.284106
#2016年12月31日-0.030083
M、DTYPE:のfloat64#1のFreq

#Print(s1.resample( "H")ffill()。)
#2016年1月1日午前0時○○ :00 -2.031085
#2016年1月1日01:00:00 -2.031085
#2016年1月1日02:00:00 -2.031085
#........



t_range = pd.date_range( "2016年1月1日"、」 2016年12月31"日、FREQ = "H")
プリント(t_range)
#DatetimeIndex([ '2016年1月1日00:00:00'、 '2016年1月1日01:00:00'
#「2016 -01-01午前二時00'分00秒、 『2016年1月1日午前三時00分00秒』、
『2016年1月1日午前4時00分00秒』、 『2016年1月1日午前5時00分00秒』 、
# '2016年1月1日午前6時00分00秒'、 '2016年1月1日午前7時00分○○秒'、
'2016年1月1日午前8時00分〇 〇秒'、「2016年1月1日09:午後12時00'分、
#...
# '2016年12月30日午前15時00分00秒'、 '2016年12月30日午後04時00分○○秒'、
'2016年12月30日17時00分00秒'、「2016年12月30日午後06時00分○○秒」、
#「2016年12月30日夜7時00分00秒」、「2016年12月30日午後八時00分00秒」、
#「2016年12月30日夜9時00分00秒」、「2016年12月30日午後10時00分00秒」、
#「2016年12月30日23時○○分00秒」、「2016年12月31日午後12時00分:00 ']、
#1 DTYPE =' datetime64 [NS]」、長さ= 8761、FREQ = 'H')
stock_df = DATAFRAME(インデックス= t_range)
プリント(stock_df.head())
#Emptyデータフレーム
#カラム:[]
インデックス:[2016年1月1日午前0時00分00秒、2016年1月1日午前1時00分00秒、2016年1月1日2時00分00秒、2016年1月1日3時00分〇 〇秒、2016から01 -01午前4時00分00秒]
stock_df [ "BABA"] = np.random.randint(80160、サイズ= LEN(t_range))
stock_df [ "TENCENT"] = np.random.randint(30,50、サイズ= LEN (t_range))
プリント(stock_df.head())
のBABAテンセント
#2016年1月1日0時00分00秒147 47
#2016年1月1日1時00分:00 88 40
#2016年1月1日02:00:00 143 33
#2016年1月1日03:00:00 132 47
#2016年1月1日04:00:00 93 44
#stock_df.plot()
インポートmatplotlib.pyplotとしてPLT
#1 plt.show()

weekly_df = DATAFRAME()
weekly_df [ "BABA"] = stock_df [ "BABA"]。( "W")リサンプリングする。平均()
weekly_df [ "TENCENT"] = stock_df [ "TENCENT"]。 (平均)。( "W")リサンプリング
プリント(weekly_df.head())
のBABAテンセント
113.819444 39.597222#2016年1月3日
#2016年1月10日122.696429 39.029762
#2016年1月17日120.458333 38.845238
#2016-01- 24 119.196429 39.690476
#2016年1月31日118.315476 38.690476
weekly_df.plot()
plt.show()
""「

『』」
#------------------------------
#数据分箱技术ビニング
score_list = np.random.randint(25,100、サイズ= 20 )
プリント(score_list)#[41 88 82 66 83 84 77 29 72 97 77 81 80 45 30 74 84 46 95 54]
ビン= 0,59,70,80,100]
score_cut = pd.cut(score_list、ビン)
印刷(score_cut)
#1 [(0、59]、(0、59]、(80、100]、(70、80]、(59、70]、...、(80、100]、(0、59] 、(0、59]、(59、70]、(80、100]
長さ:20の
#カテゴリー(4、区間[int64モード]):(0、59] <(59、70] <(70、 80 <(80、100]
印刷(pd.value_counts(score_cut))
#(0、59] 11
#(80、100] 4
#(59、70] 3
#(70、80] 2
#DTYPE:int64モード
DF =データフレーム()
DF [ "スコア"] = score_list
DF [ "学生"] = [pd.util.testing.rands(3)のためのIの範囲内(20)]
のDF [ "カテゴリ"] = pd.cut(DF [ "スコア"]、ビン、ラベル= [」低」、 "OK"、 "グッド"、 "素晴らしいです"])
、印刷(DF)
スコア学生カテゴリ
#0 71のsCO良い
#1 40のAgI低
#2 61 UBCのOK
#3 65 P1Kオクラホマ
良い#4 78 EBD
グッドoxG#5~75
#6 81 JN0グレート
#7 35低LPS
8位53 L7l低
#9 60 PUW [OK]を
#10 27 3KJ低
#11 77 2IDグッド
#12 63 D26 [OK]を
#13 96 jA7グレート
#14 46 TXB低
#15 85 8NFグレート
#16 96 JNEグレート
#17 71 xBXグッド
#18 75 3HPグッド
#19 93 SVLグレート
""」

#---------------- --------------------------------
#数据分组技术GROUPBY
"" "
DF = pd.read_csv(" city_weather.csv 「)
プリント(DF)
データ都市温風
#0 2016年3月1日BJ 8 5
#1 17/01/2016 BJ 12 2
#2 31/01/2016 BJ 19 2
#3 2016年3月2日BJ -3 3
#4 14/02/2016 BJ 19 2
#5 13/03/2016 BJ 5 3
#6 2016年10月3日SH -4 4
#7 2016年3月4日SH 19 3
#8 24/04/2016 SH 20 3
#9 2016年8月5日SH 17 3
#10 22/05/2016 SH 4 2
#11 2016年5月6日SH -10 4
#12 19/06/2016 SH 0 5
#13 2016年3月7日SH 9 5
#14 17/07/2016 GZ 10 2
#15 31/07/2016 GZ -1 5
#16 14/08/2016 GZ 1 5
17位28/08/2016 GZ 25 4
#18 2016年11月9日SZ 20 1
#19 25/09/2016 SZ -10 4

G = df.groupby( DF [ "街"])
印刷(G)
#<pandas.core.groupby.generic.DataFrameGroupBy 0x000000000297D780におけるオブジェクト>
印刷(g.groups)
#{ 'BJ':Int64Index([0、1、2、3、4、5]、DTYPE = 'Int64の')、 'GZ':Int64Index([14、15、16、17]、DTYPE = 'Int64の')、 'SH':Int64Index([6、7、8、9、10、11、12、13]、DTYPE =」 Int64の')、 'SZ':Int64Index([18、19]、DTYPE =' Int64'の)}
プリント(g.get_group( "BJ"))
データ都市温風
#0 2016年3月1日BJ 8 5
# 1 17/01/2016 BJ 12 2
#2 31/01/2016 BJ 19 2
#3 2016年3月2日BJ -3 3
#4 14/02/2016 BJ 19 2
#5 13/03/2016 BJ 5 3
df_bj = g.get_group( "BJ")
プリント(df_bj.mean())
温度10.000000
#風2.833333
#DTYPE:のfloat64
プリント(g.mean())
温風
#市
#BJ 10.000 2.833333
#GZ 8.750 4.000000
#1 SH 6.875 3.625000
#SZ 5.000 2.500000
""」

#1数据聚合技术アグリゲーション
DF = pd.read_csv( "city_weather.csv")
G = df.groupby( "都市")
プリント(g.agg( "MIN"))
データ温風
#市
#BJ 2016年3月1日-3 2
#GZ 14/08/2016 -1 2
#のSH 2016年3月4日-10 2
#SZ 2016年11月9日-10 1
デフFOO(ATTR):
プリント(型(ATTR))、印刷(ATTR)
の戻りnp.nan

プリント(g.agg(FOO))
#<クラスのpandas.core.series.Series '>
#0 2016年3月1日
#1 17/01/2016
#2 31/01/2016
#3 2016年3月2日
#4 14/02/2016
#5 13/03/2016
#名:データ、DTYPE:オブジェクト
#<クラスのpandas.core.series.Series '>
#14 17/07/2016
#15 31/07/2016
# 16 14/08/2016
#17 28/08/2016
#名:データ、DTYPE:オブジェクト
#<クラスのpandas.core.series.Series '>
#6 2016年10月3日
#7 2016年3月4日
#8 24/04/2016
#9 2016年8月5日
#10 22/05/2016
#11 2016年5月6日
#12 19/06/2016
#13 2016年3月7日
#名:データ、DTYPE:オブジェクト
#<クラスのpandas.core.series.Series '>
#18 2016年11月9日
#19 25/09/2016
#名:データ、DTYPE:オブジェクト
#<クラスのpandas.core.series.Series'>
#0 8
#1〜12
#2~19
#3 -3
#4 19
#5
#名:温度、DTYPE:int64モード
#<クラスのpandas.core.series.Series '>
#14 10
#15 -1
#16 1
#17 25
#名:温度、DTYPE:int64モード
#<クラスのpandas.core.series.Series '>
#6 -4
#7 19
#8~20
#9~17
#10 4
#11 -10
#12 0
#13 9
#名:温度、DTYPE:int64モード
#<クラスのpandas.core.series.Series '>
#18 20
#19 -10
#名:温度、DTYPE:int64モード
#<クラスのpandas.core.series.Series'>
#0~5
#1〜2
#2 2
#3,3
#4 2
#5 3
#名:風、DTYPE:int64モード
#<クラスのpandas.core.series.Series '>
#14 2
#15 5
#16 5
#17 4
#名:風、DTYPE:int64モード
#<クラスのpandas.core.series.Series '>
#6 4
#7~3
#8 3
#9~3
#10 2
#11 4
#12 5
#13 5
#名:風、DTYPE:int64モード
#<クラス「パンダ。コア。series.Series'>
#18 1
#19 4
#名:風、DTYPE:int64モード
#データ温風
#市
#BJのNaN NaNにはNaN
#GZのNaN NaNにはNaN
#SHのNaN NaNにはNaN
#SZのNaN NaNにはNaN

:DEF FOO(ATTR)
戻りattr.max () - attr.min()

プリント(g.agg(FOO))
温風
#市
#BJ 22 3
#GZ 26 3
#SH 30 3
#SZ 30 3


g_new = df.groupby([ "都市"、」風"])
プリント(g_new.groups)
#{( 'BJ'、2):Int64Index([1、2、4]、DTYPE = 'Int64の')、
#('BJ'、3):Int64Index([3 、5]、DTYPE = 'Int64の')、
#( 'BJ'、5):Int64Index([0]、DTYPE = 'Int64の')、
#('GZ'、2):Int64Index([14]、DTYPE = 'Int64の')、
#('GZ'、 4):Int64Index([17]、DTYPE = 'Int64の')、
#('GZ'、5):Int64Index([15、16]、DTYPE = 'Int64の')、
#('SH'、2):Int64Index ([10]、DTYPEは= 'Int64の')、
#('SH'、3):Int64Index([7、8、9]、DTYPE = 'Int64の')、
#('SH'、4):Int64Index([ 6、11]、DTYPE = 'Int64の')、
#('SH'、5):Int64Index([12、13]、DTYPE = 'Int64の')、
#('SZ'、1):Int64Index([18] 、DTYPE = 'Int64の')、
#('SZ'、4):Int64Index([19]、DTYPE = 'Int64の')}
プリント(g_new.get_group(( "BJ"、3)))
#データ都市温風
#3 2016年3月2日BJ -3 3
#5 13/03/2016 BJ 5 3

#32









おすすめ

転載: www.cnblogs.com/nikecode/p/11130932.html