Pandas系列教程(四)
对于想要入门数据科学的朋友们来说,Python是一个很好的选择,除了因为简单的语法外,Python 生态中提供了很多在数值计算方面非常优秀的库,其中Pandas不可不提,Pandas是很强大是数据集处理工具,往往和numpy, matplotlib 等库搭配使用,我也是刚刚开始学习Pandas, 顺便翻译了一下官方的Pandas教程, 这里使用的是jupyter notebook, 因为博客不支持html直接编辑,所以只能转化为markdown 格式,如果想直接查看html版本可点击每一节下的链接。本文仅供学习和交流使用,欢迎大家交流和指正!
摘要
- 回归基本运算
- 创建简单数据集,增加列,删除列,改变列名等
- 定位获取记录,一行一列,多行一列与多行多列,df.loc[],df.iloc[], df.head(n),df.tail(n)的使用等等
HTML版本点击此处
import pandas as pd
import sys
print('Python version',sys.version)
print('Pandas version',pd.__version__)
Python version 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56)
[GCC 7.2.0]
Pandas version 0.23.0
d = [0,1,2,3,4,5,6,7,8,9]
df = pd.DataFrame(data=d)
df
df.columns = ['Rev']
df
df['NewCol'] = 5
df
| Rev | NewCol |
---|
0 | 0 | 5 |
---|
1 | 1 | 5 |
---|
2 | 2 | 5 |
---|
3 | 3 | 5 |
---|
4 | 4 | 5 |
---|
5 | 5 | 5 |
---|
6 | 6 | 5 |
---|
7 | 7 | 5 |
---|
8 | 8 | 5 |
---|
9 | 9 | 5 |
---|
df.NewCol = df.NewCol + 1
df
| Rev | NewCol |
---|
0 | 0 | 6 |
---|
1 | 1 | 6 |
---|
2 | 2 | 6 |
---|
3 | 3 | 6 |
---|
4 | 4 | 6 |
---|
5 | 5 | 6 |
---|
6 | 6 | 6 |
---|
7 | 7 | 6 |
---|
8 | 8 | 6 |
---|
9 | 9 | 6 |
---|
del df['NewCol']
df
df['test'] = 3
df['col'] = df['Rev']
df
| Rev | test | col |
---|
0 | 0 | 3 | 0 |
---|
1 | 1 | 3 | 1 |
---|
2 | 2 | 3 | 2 |
---|
3 | 3 | 3 | 3 |
---|
4 | 4 | 3 | 4 |
---|
5 | 5 | 3 | 5 |
---|
6 | 6 | 3 | 6 |
---|
7 | 7 | 3 | 7 |
---|
8 | 8 | 3 | 8 |
---|
9 | 9 | 3 | 9 |
---|
i = ['a','b','c','d','e','f','g','h','i','j']
df.index = i
df
| Rev | test | col |
---|
a | 0 | 3 | 0 |
---|
b | 1 | 3 | 1 |
---|
c | 2 | 3 | 2 |
---|
d | 3 | 3 | 3 |
---|
e | 4 | 3 | 4 |
---|
f | 5 | 3 | 5 |
---|
g | 6 | 3 | 6 |
---|
h | 7 | 3 | 7 |
---|
i | 8 | 3 | 8 |
---|
j | 9 | 3 | 9 |
---|
df.loc['a']
Rev 0
test 3
col 0
Name: a, dtype: int64
df.loc['a':'d']
| Rev | test | col |
---|
a | 0 | 3 | 0 |
---|
b | 1 | 3 | 1 |
---|
c | 2 | 3 | 2 |
---|
d | 3 | 3 | 3 |
---|
df.iloc[0:3]
df['Rev']
a 0
b 1
c 2
d 3
e 4
f 5
g 6
h 7
i 8
j 9
Name: Rev, dtype: int64
df[['Rev','test']]
| Rev | test |
---|
a | 0 | 3 |
---|
b | 1 | 3 |
---|
c | 2 | 3 |
---|
d | 3 | 3 |
---|
e | 4 | 3 |
---|
f | 5 | 3 |
---|
g | 6 | 3 |
---|
h | 7 | 3 |
---|
i | 8 | 3 |
---|
j | 9 | 3 |
---|
df.loc[df.index[0:3],'Rev']
a 0
b 1
c 2
Name: Rev, dtype: int64
df.loc[df.index[5:],'col']
f 5
g 6
h 7
i 8
j 9
Name: col, dtype: int64
df.loc[df.index[0:3],['col','test']]
df.head()
| Rev | test | col |
---|
a | 0 | 3 | 0 |
---|
b | 1 | 3 | 1 |
---|
c | 2 | 3 | 2 |
---|
d | 3 | 3 | 3 |
---|
e | 4 | 3 | 4 |
---|
df.tail()
| Rev | test | col |
---|
f | 5 | 3 | 5 |
---|
g | 6 | 3 | 6 |
---|
h | 7 | 3 | 7 |
---|
i | 8 | 3 | 8 |
---|
j | 9 | 3 | 9 |
---|