Pandas学习笔记(一)
认识 DataFrame
DataFrame是一种Pandas的数据格式,它类似于Excel表格,可以用来处理各种不同的数据。 他的强大之处还不限于此,他可以处理二维甚至是多维数据,支持科学计算,对各种数据格式支持友好…
例如,你可以这样构建一个df(DataFrame):
>>> d = {'col1': [1, 2], 'col2': [3, 4]}
>>> df = pd.DataFrame(data=d)
>>> df
col1 col2
0 1 3
1 2 4
同样你也可以这样构建一个df:
>>> 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
还可以这样:
>>> 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
进行绘图。
例如,我们可以使用它来检测数据中是否含有空值:
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
删除空值行
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
填充空值
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
分类聚合
df = df.groupby('sex')['market_rate'].agg('mean')
sex
F 2.733333
M 5.080000
数据可视化
df.plot(kind="pie", y='market_rate', subplots=True, figsize=(11,6))
plt.show()