Pandas学习笔记(一)

认识 DataFrame

DataFrame是一种Pandas的数据格式,它类似于Excel表格,可以用来处理各种不同的数据。
他的强大之处还不限于此,他可以处理二维甚至是多维数据,支持科学计算,对各种数据格式支持友好…

例如,你可以这样构建一个df(DataFrame):

1
2
3
4
5
6
>>> d = {'col1': [1, 2], 'col2': [3, 4]}
>>> df = pd.DataFrame(data=d)
>>> df
col1 col2
0 1 3
1 2 4

同样你也可以这样构建一个df:

1
2
3
4
5
6
7
>>> df2 = pd.DataFrame(np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]),
... columns=['a', 'b', 'c'])
>>> df2
a b c
0 1 2 3
1 4 5 6
2 7 8 9

还可以这样:

1
2
3
4
5
6
7
8
9
>>> data = np.array([(1, 2, 3), (4, 5, 6), (7, 8, 9)],
... dtype=[("a", "i4"), ("b", "i4"), ("c", "i4")])
>>> df3 = pd.DataFrame(data, columns=['c', 'a'])
...
>>> df3
c a
0 3 1
1 6 4
2 9 7

这里只是简单介绍一下DataFrame的创建方式,创建它的方法有很多,这里就不过多赘述。

数据分析

Pandas 在用于数据分析方面也是一个很强很好用的工具,它甚至可以联合matplotlib进行绘图。

例如,我们可以使用它来检测数据中是否含有空值:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv(r'test.csv')
print(df.isna())

id name market_rate sex
0 False False False False
1 False False True False
2 False False False False
3 False False False False
4 False False False False
5 False False True False
6 False False True False
7 False False False False

删除空值行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  df = df.dropna()

id name market_rate sex
0 1 xiaomi 1.0 F
1 2 huawei NaN M
2 3 apple 3.0 F
3 4 meizu 4.0 M
4 5 vivo 5.0 M
5 6 oppo NaN F
6 7 oneplus NaN M
7 8 nokia 8.0 M

id name market_rate sex
0 1 xiaomi 1.0 F
2 3 apple 3.0 F
3 4 meizu 4.0 M
4 5 vivo 5.0 M
7 8 nokia 8.0 M

填充空值

1
2
3
4
5
6
7
8
9
10
11
  df.fillna(df['market_rate'].mean(),inplace=True)

id name market_rate sex
0 1 xiaomi 1.0 F
1 2 huawei 4.2 M
2 3 apple 3.0 F
3 4 meizu 4.0 M
4 5 vivo 5.0 M
5 6 oppo 4.2 F
6 7 oneplus 4.2 M
7 8 nokia 8.0 M

分类聚合

1
2
3
4
5
  df = df.groupby('sex')['market_rate'].agg('mean')

sex
F 2.733333
M 5.080000

数据可视化

1
2
df.plot(kind="pie", y='market_rate', subplots=True, figsize=(11,6))
plt.show()

matplotlib 绘图