沧海拾珠

Pandas 基本数据处理

1. value_counts() 函数

作用:返回一个包含值和该值出现次数的Series对象,次序按照出现的频率由高到低排序。
参数:
normalize : 布尔值,默认为False,如果是True的话,就会包含该值出现次数的频率。
sort : 布尔值,默认为True.排序控制。
ascending : 布尔值,默认为False,以降序排序。
dropna : 布尔型,默认为True,表示不包括NaN(缺失值)。

1
2
3
4
5
6
7
import pandas as pd
df = pd.read_csv('olympics.csv',skiprows = 4)
df.Gender.value_counts()
Men 21721
Women 7495
Name: Gender, dtype: int64

2. sort_values()函数

对Series按值进行排序, 排序时,任何缺失值默认都会被放到Series的末尾。
在dataFrame中对某一列或几列进行排序,使用 by 传递参数,ascending 默认为True。

1
2
3
4
5
6
7
8
9
10
11
12
13
df = pd.DataFrame({
... 'col1' : ['A', 'A', 'B', np.nan, 'D', 'C'],
... 'col2' : [2, 1, 9, 8, 7, 4],
... 'col3': [0, 1, 9, 4, 2, 3],
... })
df.sort_values(by=['col1', 'col2'])
col1 col2 col3
1 A 1 1
0 A 2 0
2 B 9 9
5 C 4 3
4 D 7 2
3 NaN 8 4

3. 布尔值 Boolean indexing, 例如:

与:&
或:|
非:-
等于:==
同时筛选几个条件需要用括号围起来。

1
2
3
4
5
6
7
8
9
10
11
12
import pandas as pd
df = pd.read_csv('olympics.csv',skiprows = 4)
df.Medal == 'Gold'
0 True
1 False
2 False
3 True
4 False
df[df.Medal == 'Gold'] #返回获得金牌的dataFrame数据集
df[(df.Medal == 'Gold') & (df.Gender == 'Women')] #返回获得金牌的女性的数据集

4.字符串处理

Series.str.contains()
Series.str.startswith()
Series.str.isnumeric()

1
df[df.Athlete.str.contains('Florence')] #返回含有“Florence”的数据集