机器学习准备工作:Pandas 使用入门
机器学习的前提条件和准备工作
参考网址:前提条件和准备工作
一、Pandas安装
pandas可以通过PyPI的 pip安装
pip install pandas
pandas依赖包:
- setuptools:24.2.0或更高版本
- NumPy:1.12.0或更高
- python-dateutil:2.5.0或更高版本
- pytz
注意 强烈建议您安装这些库,因为它们可以提高速度,尤其是在处理大型数据集时。
二、简介
pandas是一个Python包,提供快速,灵活和富有表现力的数据结构,非常适合许多不同类型的数据:
- 具有异构类型列的表格数据,如SQL表或Excel电子表格中
- 有序和无序(不一定是固定频率)时间序列数据。
- 具有行和列标签的任意矩阵数据(均匀类型或异构)
- 任何其他形式的观察/统计数据集。实际上不需要将数据标记为放置在pandas数据结构中
三、十分钟入门Pandas
导入包和依赖
import numpy as np
import pandas as pd
创建对象
1、通过传列表创建一个Series对象
s = pd.Series([1, 3, 5, np.nan, 6, 8])
print(s)
输出结果:
0 1.0
1 3.0
2 5.0
3 NaN
4 6.0
5 8.0
dtype: float64
2、创建DataFrame对象
#用字典构造DataFrame。
d = {'col1': [1, 2], 'col2': [3, 4]}
df = pd.DataFrame(data=d)
print(df)
输出结果:
col1 col2
0 1 3
1 2 4
查看数据
1、head([N])返回前n行
d = {'col1': [1, 2], 'col2': [3, 4]}
df = pd.DataFrame(data=d)
# 返回第一行数据
print(df.head(1))
输出结果:
col1 col2
0 1 3
head()不传递任何参数返回全部数据
2、tail([N])返回最后n行。
d = {'col1': [1, 2], 'col2': [3, 4]}
df = pd.DataFrame(data=d)
# 返回最后一行数据
print(df.tail(1))
输出结果:
col1 col2
1 2 4
更多数据操作API请参考http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html#pandas.DataFrame
可视化
可视化需要导入matplotlib包
pip install matplotlib
代码:
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
ts = pd.Series(np.random.randn(1000), index = pd.date_range('20190509', periods=1000))
ts = ts.cumsum()
ts.plot()
plt.show()
输出结果图:
数据写入Excel/读出Excel
写入Excel
to_excel()
方法可以使用Python模块写入Excel 2003(.xls)和Excel 2007+(.xlsx)文件
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from openpyxl import Workbook
ts = pd.Series(np.random.randn(1000), index = pd.date_range('20190509', periods=1000))
df = pd.DataFrame(np.random.randn(1000, 4), index=ts.index, columns=['A', 'B', 'C', 'D'])
df.to_excel('foo.xlsx', sheet_name='Sheet1')
读取Excel
read_excel()
方法可以使用Python模块读取Excel 2003(.xls)和Excel 2007+(.xlsx)文件
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
from openpyxl import Workbook
import xlrd
ts = pd.Series(np.random.randn(1000), index = pd.date_range('20190509', periods=1000))
df = pd.DataFrame(np.random.randn(1000, 4), index=ts.index, columns=['A', 'B', 'C', 'D'])
# df.to_excel('foo.xlsx', sheet_name='Sheet1')
print(pd.read_excel('foo.xlsx', 'Sheet1', index_col=None, na_values=['NA']))
输出结果:
Unnamed: 0 A B C D
0 2019-05-09 -1.046397 -0.112939 0.974725 1.813917
1 2019-05-10 0.259599 1.622188 1.302376 -0.957691
2 2019-05-11 0.965145 -0.604131 -2.394720 1.174101
3 2019-05-12 0.679404 -0.749037 0.818017 -0.806865
4 2019-05-13 0.276341 -0.852112 -0.218508 -0.371901
5 2019-05-14 -0.099482 0.664920 -0.098250 -1.740499
6 2019-05-15 -0.385444 -0.743308 -1.020885 -1.485595
7 2019-05-16 -0.845130 -0.816570 -0.080318 0.807498
8 2019-05-17 0.201600 -1.066372 0.320015 -1.782895
9 2019-05-18 -1.246202 -0.403461 0.482306 -1.101779
10 2019-05-19 -0.019618 0.837803 -0.722893 1.815060
11 2019-05-20 0.021187 -1.622634 -3.167830 -0.526307
12 2019-05-21 -1.233084 0.765401 -1.314020 -0.570234
13 2019-05-22 -0.664462 -0.245917 -0.309774 -0.083252
14 2019-05-23 -0.070039 1.394489 -0.458618 -0.482249
15 2019-05-24 1.873507 0.181402 -0.031043 -0.189374
16 2019-05-25 -0.622836 -0.954538 0.123703 1.734610
17 2019-05-26 1.551736 -0.773704 -0.769101 -0.977409
18 2019-05-27 -1.616786 0.234972 1.272347 -0.998941
19 2019-05-28 0.135639 1.208109 0.741068 0.638912
20 2019-05-29 -1.506164 -1.778522 -0.474698 -2.461907
21 2019-05-30 -0.040489 0.153388 0.073850 0.056990
22 2019-05-31 0.175437 -0.302903 -1.388890 0.338808
23 2019-06-01 -0.060980 1.314879 0.453097 -0.394947
24 2019-06-02 1.161056 -0.481036 -1.271535 0.579596
25 2019-06-03 -0.512491 0.074971 -1.272754 0.798560
26 2019-06-04 0.535749 -0.599042 -0.771529 -0.882622
27 2019-06-05 0.938610 -0.431517 0.286557 2.018607
28 2019-06-06 0.100279 0.370312 -1.048766 2.541211
29 2019-06-07 -0.515611 -2.067672 -0.299344 1.088438
.. ... ... ... ... ...
970 2022-01-03 1.010301 0.004029 -1.186850 0.764020
971 2022-01-04 1.053440 -0.036742 -0.013136 -1.154893
972 2022-01-05 1.122546 -1.520269 -1.363195 -1.131316
973 2022-01-06 0.359485 -1.281590 -0.193030 -1.058258
974 2022-01-07 0.190706 -0.622970 0.034609 -0.505958
975 2022-01-08 0.919020 -1.428432 0.268933 0.950938
976 2022-01-09 -0.597984 0.276934 0.025760 1.359294
977 2022-01-10 0.360992 -0.364269 -0.227758 0.377190
978 2022-01-11 1.127601 1.411818 -0.910560 -0.673511
979 2022-01-12 2.998876 -0.544023 2.707983 -1.928286
980 2022-01-13 0.186954 -0.917718 1.465059 2.059870
981 2022-01-14 0.071602 -0.910401 -0.190536 0.055071
982 2022-01-15 0.283898 -1.537629 0.063100 1.538713
983 2022-01-16 2.066996 -0.461288 -1.847752 -1.540087
984 2022-01-17 0.329031 -0.913301 -0.256891 -0.389099
985 2022-01-18 1.785928 0.742949 -1.599816 -0.689316
986 2022-01-19 0.923402 -0.079466 0.533646 -1.066317
987 2022-01-20 0.500906 -1.385184 -1.378920 0.944822
988 2022-01-21 0.720500 -0.365835 0.375643 0.091686
989 2022-01-22 0.915461 1.856851 -0.003953 -2.091525
990 2022-01-23 0.762105 0.123592 -0.002968 1.682612
991 2022-01-24 -2.965871 -0.504180 0.579855 1.055369
992 2022-01-25 -0.877629 -0.712530 0.165810 0.525049
993 2022-01-26 -0.000454 -0.693073 1.495790 -0.587068
994 2022-01-27 -0.979516 -0.905312 0.885960 -1.316406
995 2022-01-28 1.315408 -0.660843 -1.317931 1.785182
996 2022-01-29 -0.471732 -0.276165 -0.337215 -0.478307
997 2022-01-30 -1.005565 2.434502 -1.146683 0.852022
998 2022-01-31 0.985965 1.613141 -0.567136 -0.528416
999 2022-02-01 -0.252733 -1.975451 0.238089 0.689168
[1000 rows x 5 columns]
当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »