当前位置: 首页 > 文档资料 > Pandas 官方教程 >

学习 Pandas - 04 - Lesson

优质
小牛编辑
127浏览
2023-12-01

英文原文: 04 - Lesson

在这一课,我们将回归一些基本概念。 我们将使用一个比较小的数据集这样你就可以非常容易理解我尝试解释的概念。 我们将添加列,删除列,并且使用不同的方式对数据进行切片(slicing)操作。 Enjoy!

  1. # 导入需要的库
  2. import pandas as pd
  3. import sys
  1. print('Python version ' + sys.version)
  2. print('Pandas version: ' + pd.__version__)
  1. Python version 3.6.1 | packaged by conda-forge | (default, Mar 23 2017, 21:57:00)
  2. [GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.53)]
  3. Pandas version: 0.19.2
  1. # 我们的小数据集
  2. d = [0,1,2,3,4,5,6,7,8,9]
  3. # 创建一个 dataframe
  4. df = pd.DataFrame(d)
  5. df


















































0
00
11
22
33
44
55
66
77
88
99

  1. # 我们把列名修改一下
  2. df.columns = ['Rev']
  3. df


















































Rev
00
11
22
33
44
55
66
77
88
99

  1. # 我们增加一列
  2. df['NewCol'] = 5
  3. df





























































RevNewCol
005
115
225
335
445
555
665
775
885
995

  1. # 修改一下新增加的这一列的值
  2. df['NewCol'] = df['NewCol'] + 1
  3. df





























































RevNewCol
006
116
226
336
446
556
666
776
886
996

  1. # 我们可以删除列
  2. del df['NewCol']
  3. df


















































Rev
00
11
22
33
44
55
66
77
88
99

  1. # 让我们增加几列。 译者注: 当使用 dataframe 没有的列时,dataframe 自动增加这个新列
  2. df['test'] = 3
  3. df['col'] = df['Rev']
  4. df








































































Revtestcol
0030
1131
2232
3333
4434
5535
6636
7737
8838
9939

  1. # 如果有需要,可以改变索引(index)的名字
  2. i = ['a','b','c','d','e','f','g','h','i','j']
  3. df.index = i
  4. df








































































Revtestcol
a030
b131
c232
d333
e434
f535
g636
h737
i838
j939

通过使用 *loc,我们可以选择 dataframe 中的部分数据。

  1. df.loc['a']
  1. Rev 0
  2. test 3
  3. col 0
  4. Name: a, dtype: int64
  1. # df.loc[起始索引(包含):终止索引(包含)]
  2. df.loc['a':'d']




































Revtestcol
a030
b131
c232
d333

  1. # df.iloc[起始索引(包含):终止索引(不包含)]
  2. # 注意: .iloc 非常严格限制在整形的索引上. 从 [version 0.11.0] (http://pandas.pydata.org/pandas-docs/stable/whatsnew.html#v0-11-0-april-22-2013) 开始有这个操作。
  3. df.iloc[0:3]






























Revtestcol
a030
b131
c232

也可以通过列名选择一列的值。

  1. df['Rev']
  1. a 0
  2. b 1
  3. c 2
  4. d 3
  5. e 4
  6. f 5
  7. g 6
  8. h 7
  9. i 8
  10. j 9
  11. Name: Rev, dtype: int64
  1. df[['Rev', 'test']]





























































Revtest
a03
b13
c23
d33
e43
f53
g63
h73
i83
j93

  1. # df.ix[行范围, 列范围]
  2. df.ix[0:3,'Rev']
  1. a 0
  2. b 1
  3. c 2
  4. Name: Rev, dtype: int64
  1. df.ix[5:,'col']
  1. f 5
  2. g 6
  3. h 7
  4. i 8
  5. j 9
  6. Name: col, dtype: int64
  1. df.ix[:3,['col', 'test']] #译者注: 用一个列的list来选择多个列


























coltest
a03
b13
c23

还有一些方便的方法来选择最前或者最后的一些记录。

  1. # 选择 top-N 个记录 (默认是 5 个)
  2. df.head()










































Revtestcol
a030
b131
c232
d333
e434

  1. # 选择 bottom-N 个记录 (默认是 5 个)
  2. df.tail()










































Revtestcol
f535
g636
h737
i838
j939