全栈工程师放下大话!十分钟必定能带你入门Pandas!史上最全干货 ...

[复制链接]
oLjwRgTm 发表于 2017-12-31 05:32:55 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
0 g) D" k0 i+ g: \" f7 W
5 ]- L9 Z1 }) g4 K- [; w. }
* u1 u8 H/ b( z/ @& S! N4 S- U

; W  Y% e; @3 Z% E! z4 a: M: q6 C9 l( T8 L/ C
正如上图所示,列A,B,C,D都自动显示出来了,E也是(不过没显示出来),其余属性被截断了。
( U( s$ ^- a8 X* f' ]/ N2 o查看数据# c2 E! W% v0 l1 _9 s) H8 M
查看前几条或者后几条数据:) |) p3 M( d) J# v  }$ T- }

0 |% n: |% i( |, V& d. A& K% |( U- V9 e# m

2 o2 A( i- V' l' L4 b
5 u4 ]! Z* A/ a7 d: _- }8 A+ Y% j5 e1 o
$ `4 e4 [2 H/ f( `+ g
获取一定标签范围的数据,包含起始和结尾两条数据 (这个注意和Python的切片操作有略微不同,Python切片是不包含结尾的):小编推荐大家加一下这个群:103456743这个群里好几千人了!大家遇到啥问题都会在里面交流!而且免费分享零基础入门料资料web开发 爬虫资料一整套!是个非常好的学习交流地方!也有程序员大神给大家热心解答各种问题!很快满员了。欲进从速哦!各种PDF等你来下载!全部都是免费的哦!只为帮助大家快速入门,所以小编在群里等你们过来一起交流学习呢!
8 S% s5 s" m3 v/ a3 S6 Y/ m8 ]+ n4 _$ }
使用下标获取数据
. B  A! q# A! G$ `6 V( i0 A# B$ v通过整数下标来选择数据:
* Z/ e6 j! u( A, k3 h2 J& |6 u' z5 v9 }. H
$ A( ^+ j( f) R8 ?! e, f

5 H1 J! C/ o; t* ?# X% |* a: Q- ^* b2 y# |( X
) H$ I% F  i) [- \- k: Q3 U
赋值# s/ V8 L% _5 K' S
创建一个新列并自动根据索引将数据对其:
% D0 Q+ x8 h; ~' }! z. c# ]: C% w: x, z* Q, {
使用numpy数组赋值:* F% t& {6 p8 w8 [
1In [50]: df.loc[:,'D'] = np.array([5] * len(df))
上面操作后结果如下:. q2 m- O; C; p8 T3 `
# 注意F列,声明时候从1月2日开始,所以第一行为NANIn [51]: dfOut[51]: A B C D F2013-01-01 0.000000 0.000000 -1.509059 5 NaN2013-01-02 1.212112 -0.173215 0.119209 5 1.02013-01-03 -0.861849 -2.104569 -0.494929 5 2.02013-01-04 0.721555 -0.706771 -1.039575 5 3.02013-01-05 -0.424972 0.567020 0.276232 5 4.02013-01-06 -0.673690 0.113648 -1.478427 5 5.02 t$ z! |, a1 d- G0 U
In [55]: df1 = df.reindex(index=dates[0:4], columns=list(df.columns) + ['E'])In [56]: df1.loc[dates[0]:dates[1],'E'] = 1In [57]: df1Out[57]: A B C D F E2013-01-01 0.000000 0.000000 -1.509059 5 NaN 1.02013-01-02 1.212112 -0.173215 0.119209 5 1.0 1.02013-01-03 -0.861849 -2.104569 -0.494929 5 2.0 NaN2013-01-04 0.721555 -0.706771 -1.039575 5 3.0 NaN3 Q4 |4 K, R# G: U
操作: l- U* d! I& N9 P9 y
细节请查看Basic section on Binary Ops
0 v& |8 \8 L5 x' A: v: p0 C+ t- T统计数据6 Z6 ~8 s0 r1 j, @3 [! L; m3 Z
所有的操作都 排除缺失 的数据。执行一个统计函数:
" }5 [+ u2 x0 `0 P+ U
8 ~0 v# g8 v! s& V! \' m. k: s* C0 \
应用函数4 w! |# R6 ~4 E
在数据集上应用函数:/ y( @. D1 h8 y# A3 Y# v9 @
" o1 |' m- M! p# n" ~7 R% g

5 B4 y3 Q( J7 L& g! l: l0 B0 k( ~9 e4 A5 n& `/ w& p
' c2 p( x% R2 x) B
In [73]: df = pd.DataFrame(np.random.randn(10, 4))In [74]: dfOut[74]: 0 1 2 30 -0.548702 1.467327 -1.015962 -0.4830751 1.637550 -1.217659 -0.291519 -1.7455052 -0.263952 0.991460 -0.919069 0.2660463 -0.709661 1.669052 1.037882 -1.7057754 -0.919854 -0.042379 1.247642 -0.0099205 0.290213 0.495767 0.362949 1.5481066 -1.131345 -0.089329 0.337863 -0.9458677 -0.932132 1.956030 0.017587 -0.0166928 -0.575247 0.254161 -1.143704 0.2158979 1.193555 -0.077118 -0.408530 -0.862495# break it into piecesIn [75]: pieces = [df[:3], df[3:7], df[7:]]In [76]: pd.concat(pieces)Out[76]: 0 1 2 30 -0.548702 1.467327 -1.015962 -0.4830751 1.637550 -1.217659 -0.291519 -1.7455052 -0.263952 0.991460 -0.919069 0.2660463 -0.709661 1.669052 1.037882 -1.7057754 -0.919854 -0.042379 1.247642 -0.0099205 0.290213 0.495767 0.362949 1.5481066 -1.131345 -0.089329 0.337863 -0.9458677 -0.932132 1.956030 0.017587 -0.0166928 -0.575247 0.254161 -1.143704 0.2158979 1.193555 -0.077118 -0.408530 -0.862495, a" w# @3 h* |' g. v, \* |- {  S

2 i" }: v/ h" R; H9 _3 jAppend9 Q4 q# x6 C- v% g0 J7 q& y" K  `0 F; ^' i
追加一行到数据中:
* d# k. v# ^- c" T1 WIn [87]: df = pd.DataFrame(np.random.randn(8, 4), columns=['A','B','C','D'])In [88]: dfOut[88]: A B C D0 1.346061 1.511763 1.627081 -0.9905821 -0.441652 1.211526 0.268520 0.0245802 -1.577585 0.396823 -0.105381 -0.5325323 1.453749 1.208843 -0.080952 -0.2646104 -0.727965 -0.589346 0.339969 -0.6932055 -0.339355 0.593616 0.884345 1.5914316 0.141809 0.220390 0.435589 0.1924517 -0.096701 0.803351 1.715071 -0.708758In [89]: s = df.iloc[3]# 注意后面的ignore_index参数In [90]: df.append(s, ignore_index=True)Out[90]: A B C D0 1.346061 1.511763 1.627081 -0.9905821 -0.441652 1.211526 0.268520 0.0245802 -1.577585 0.396823 -0.105381 -0.5325323 1.453749 1.208843 -0.080952 -0.2646104 -0.727965 -0.589346 0.339969 -0.6932055 -0.339355 0.593616 0.884345 1.5914316 0.141809 0.220390 0.435589 0.1924517 -0.096701 0.803351 1.715071 -0.7087588 1.453749 1.208843 -0.080952 -0.264610Grouping+ j( _! |/ C1 Y( Q4 Y, l9 f  W6 j
& G1 i+ c; |3 F
" \7 P: e2 P4 k2 Y: G5 \

& y+ D5 {. l6 a5 \
- }" Z( ~' g# P: _! c
2 Z! \! R6 T5 }0 k6 Y5 b2 C$ z: I4 C* O2 p; p8 _' R- E
我们可以很简单的生成透视表:! ]3 ~) z7 W/ ^4 c( V0 n
In [107]: pd.pivot_table(df, values='D', index=['A', 'B'], columns=['C'])Out[107]:C bar fooA B one A -0.773723 1.418757 B -0.029716 -1.879024 C -1.146178 0.314665three A 1.006160 NaN B NaN -1.035018 C 0.648740 NaNtwo A NaN 0.100900 B -1.170653 NaN C NaN 0.5368269 r. K; _( O* r
$ S( ^# ~2 Q2 H5 g. p$ U, X$ ^7 G: f

$ O0 i$ r. i9 A修改时间跨度:- C+ P  |5 {$ G) T
#比如数据中某个月的具体日期不同,想统一成每个月1号In [117]: rng = pd.date_range('1/1/2012', periods=5, freq='M')In [118]: ts = pd.Series(np.random.randn(len(rng)), index=rng)In [119]: tsOut[119]:2012-01-31 -1.1346232012-02-29 -1.5618192012-03-31 -0.2608382012-04-30 0.2819572012-05-31 1.523962Freq: M, dtype: float64In [120]: ps = ts.to_period()In [121]: psOut[121]:2012-01 -1.1346232012-02 -1.5618192012-03 -0.2608382012-04 0.2819572012-05 1.523962Freq: M, dtype: float64In [122]: ps.to_timestamp()Out[122]:2012-01-01 -1.1346232012-02-01 -1.5618192012-03-01 -0.2608382012-04-01 0.2819572012-05-01 1.523962Freq: MS, dtype: float64' T$ h% v' T5 T/ V
Categoricals* m% e, z. ^* A1 o# n* E

. g1 Q, m4 r, |) F" A: c9 {' W4 Q
& n1 @. Z; t6 d  D9 KIn [133]: df.sort_values(by="grade")Out[133]: id raw_grade grade5 6 e very bad1 2 b good2 3 b good0 1 a very good3 4 a very good4 5 a very good. X; W& d8 s6 S0 i  B& @

; C. X  O/ Z. N
5 D* l3 S3 K/ G3 w& K1 q
, S8 B0 _, R" X  X" f1 Z4 C3 s% N7 F1 J) A4 l) l# U& P( l; N
+ j" ^/ N3 ?8 \" Q
HDF5格式0 D; ^/ H! @7 a( \' {3 z' S% f
写入:# {' Q! V$ c# F: M% ^2 @4 B
1In [143]: df.to_hdf('foo.h5','df')
读取:
# g9 R" x: u0 v8 T: {) w( B- L' g$ G  i, ^
EXCEL格式4 z: B7 o8 C$ k) q3 S
写入:
$ z6 d: g' B7 A8 ^. P: Y2 ~
1In [145]: df.to_excel('foo.xlsx', sheet_name='Sheet1')
读取:
) q& G% d) R6 J$ i; U6 k2 Q
1 @4 v; c# M( t! i- ]1 F
* ]4 b1 L. f- {  @* d  Y谢谢阅读!5 b2 X& t$ o' e; G
' K/ `$ \' j+ |% E0 ?4 R: i7 N. L
如有侵权请联系小编删除哦!: g  U- x; ~) l% y( k1 K- k  B8 A

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题
推荐阅读更多+
阅读排行更多+
用心服务创业者
0851-88611148
周一至周五 9:00-18:00
意见反馈:admin@0851life.com

扫一扫关注我们

Powered by 童码少儿编程 X3.4© 2001-2013 0851life Inc.|网站地图