AI之 panda
pandas 是python中的一个 数据分析库,填补了python在数据分析中的不足,同 numpy 、matplotlib一起 为python的小规模数据分析提供强大的支持。
** 数据分析的一般步骤**
- 数据整理和清洗
- 数据分析与建模
- 数据可视化和制表
pandas 在数据的处理方面表现卓越.
数据结构
series
series (系列),在pandas中可以表示所有的由一维数据组成的数据结构。
1 | import pandas as pd |
DataFrame
与series 不同,代表所有的二维数组结构的数据结构。
1 | import numpy as np |
常用的函数和方法:
1 | # 查看其属性、概览和统计信息 |
数据加载与数据导出
csv
1 | import numpy as np |
excel
1 | import numpy as np |
数据获取
1 | import pandas as pd |
按标签获取
1 | import pandas as pd |
位置选择
1 | df.iloc[4] # ⽤整数位置选择。 |
条件筛选
1 | import pandas as pd |
赋值操作
1 | import pandas as pd |
1 | 二维数据: |
数据集成
数据窜连
1 |
|
1 | df1 |
数据插入
1 | import numpy as np |
sql 式的拼接
1 | import pandas as pd |
1 | r1 |
数据清洗
1 | import numpy as np |
数据转化
轴 和 元素替换
1 | import numpy as np |
map Series 元素操作
1 | import numpy as np |
apply、map 对数据的操作
1 | import numpy as np |
| Python | Tensorflow | Keras | |
|---|---|---|---|
| A | 9 | 0 | 3.0 |
| B | 8 | 5 | 4.0 |
| C | 6 | 5 | 5.0 |
| D | 9 | 6 | 6.0 |
| E | 1 | 7 | NaN |
| F | 3 | 3 | 8.0 |
| H | 1 | 0 | 6.0 |
| I | 6 | 1 | 5.0 |
| J | 0 | 2 | 9.0 |
| K | 0 | 2 | 7.0 |
1 | A False |
transform
1 | import numpy as np |
| Python | Tensorflow | Keras | |
|---|---|---|---|
| A | 4 | 7 | 1.0 |
| B | 4 | 7 | 8.0 |
| C | 6 | 8 | 5.0 |
| D | 6 | 0 | 0.0 |
| E | 7 | 4 | NaN |
| F | 8 | 7 | 5.0 |
| H | 9 | 4 | 7.0 |
| I | 6 | 1 | 2.0 |
| J | 3 | 6 | 8.0 |
| K | 4 | 1 | 3.0 |
| sqrt | exp | |
|---|---|---|
| A | 2.000000 | 54.598150 |
| B | 2.000000 | 54.598150 |
| C | 2.449490 | 403.428793 |
| D | 2.449490 | 403.428793 |
| E | 2.645751 | 1096.633158 |
| F | 2.828427 | 2980.957987 |
| H | 3.000000 | 8103.083928 |
| I | 2.449490 | 403.428793 |
| J | 1.732051 | 20.085537 |
| K | 2.000000 | 54.598150 |
| Python | Tensorflow | Keras | |
|---|---|---|---|
| A | 40 | 70 | 1.000000 |
| B | 40 | 70 | 8.000000 |
| C | 60 | 80 | 5.000000 |
| D | 60 | 0 | 0.000000 |
| E | 70 | 40 | 4.333333 |
| F | 80 | 70 | 5.000000 |
| H | 90 | 40 | 7.000000 |
| I | 60 | 10 | 2.000000 |
| J | 30 | 60 | 8.000000 |
| K | 40 | 10 | 3.000000 |
随机、重拍、抽样、独热编码
1 | # 创建一个更复杂的数据框 |
| Python | Tensorflow | Keras | |
|---|---|---|---|
| A | 8 | 6 | 7.0 |
| B | 0 | 1 | 1.0 |
| C | 5 | 6 | 9.0 |
| D | 8 | 8 | 6.0 |
| E | 5 | 6 | NaN |
| F | 6 | 9 | 2.0 |
| H | 5 | 3 | 0.0 |
| I | 4 | 3 | 7.0 |
| J | 2 | 2 | 1.0 |
| K | 0 | 0 | 4.0 |
| sqrt | exp | |
|---|---|---|
| A | 2.828427 | 2980.957987 |
| B | 0.000000 | 1.000000 |
| C | 2.236068 | 148.413159 |
| D | 2.828427 | 2980.957987 |
| E | 2.236068 | 148.413159 |
| F | 2.449490 | 403.428793 |
| H | 2.236068 | 148.413159 |
| I | 2.000000 | 54.598150 |
| J | 1.414214 | 7.389056 |
| K | 0.000000 | 1.000000 |
| Python | Tensorflow | Keras | |
|---|---|---|---|
| A | -80 | 60 | 7.000000 |
| B | 0 | 10 | 1.000000 |
| C | -50 | 60 | 9.000000 |
| D | -80 | 80 | 6.000000 |
| E | -50 | 60 | 4.111111 |
| F | -60 | 90 | 2.000000 |
| H | -50 | 30 | 0.000000 |
| I | -40 | 30 | 7.000000 |
| J | -20 | 20 | 1.000000 |
| K | 0 | 0 | 4.000000 |
1 | # 创建一个更复杂的数据框 |
1 | 原始数据: |
数据重塑
1 | import numpy as np |
| Python | Tensorflow | Keras | |
|---|---|---|---|
| A | 35 | 37 | 16 |
| B | 83 | 25 | 20 |
| C | 90 | 96 | 0 |
| D | 65 | 93 | 10 |
| E | 14 | 9 | 93 |
| F | 10 | 32 | 87 |
| H | 20 | 72 | 18 |
| I | 73 | 20 | 0 |
| J | 36 | 4 | 67 |
| K | 77 | 64 | 5 |
| A | B | C | D | E | F | H | I | J | K | |
|---|---|---|---|---|---|---|---|---|---|---|
| Python | 35 | 83 | 90 | 65 | 14 | 10 | 20 | 73 | 36 | 77 |
| Tensorflow | 37 | 25 | 96 | 93 | 9 | 32 | 72 | 20 | 4 | 64 |
| Keras | 16 | 20 | 0 | 10 | 93 | 87 | 18 | 0 | 67 | 5 |
| Python | Tensorflow | Keras | ||
|---|---|---|---|---|
| A | 期中 | 54 | 2 | 3 |
| 期末 | 84 | 6 | 31 | |
| B | 期中 | 3 | 45 | 42 |
| 期末 | 34 | 18 | 63 | |
| C | 期中 | 62 | 88 | 20 |
| 期末 | 1 | 12 | 13 | |
| D | 期中 | 3 | 69 | 77 |
| 期末 | 0 | 52 | 8 | |
| E | 期中 | 8 | 99 | 15 |
| 期末 | 86 | 79 | 96 | |
| F | 期中 | 89 | 53 | 74 |
| 期末 | 62 | 75 | 93 | |
| H | 期中 | 86 | 50 | 15 |
| 期末 | 98 | 29 | 21 | |
| I | 期中 | 19 | 26 | 91 |
| 期末 | 85 | 5 | 52 | |
| J | 期中 | 46 | 89 | 11 |
| 期末 | 87 | 72 | 62 | |
| K | 期中 | 85 | 46 | 46 |
| 期末 | 6 | 86 | 14 |
| Python | Tensorflow | Keras | ||||
|---|---|---|---|---|---|---|
| 期中 | 期末 | 期中 | 期末 | 期中 | 期末 | |
| A | 54 | 84 | 2 | 6 | 3 | 31 |
| B | 3 | 34 | 45 | 18 | 42 | 63 |
| C | 62 | 1 | 88 | 12 | 20 | 13 |
| D | 3 | 0 | 69 | 52 | 77 | 8 |
| E | 8 | 86 | 99 | 79 | 15 | 96 |
| F | 89 | 62 | 53 | 75 | 74 | 93 |
| H | 86 | 98 | 50 | 29 | 15 | 21 |
| I | 19 | 85 | 26 | 5 | 91 | 52 |
| J | 46 | 87 | 89 | 72 | 11 | 62 |
| K | 85 | 6 | 46 | 86 | 46 | 14 |
[6]:
| Python | Tensorflow | Keras | |
|---|---|---|---|
| 期中 | 45.5 | 56.7 | 39.4 |
| 期末 | 54.3 | 43.4 | 45.3 |
数学&统计
统计
1 | import numpy as np |
| Python | Tensorflow | Keras | |
|---|---|---|---|
| count | 20.00000 | 20.000000 | 20.000000 |
| mean | 45.35000 | 51.350000 | 56.300000 |
| std | 31.77764 | 25.359053 | 33.010525 |
| min | 1.00000 | 15.000000 | 4.000000 |
| 25% | 14.25000 | 25.500000 | 27.750000 |
| 50% | 48.00000 | 53.500000 | 66.000000 |
| 75% | 67.50000 | 63.750000 | 81.000000 |
| max | 99.00000 | 97.000000 | 98.000000 |
数据排序
1 | import numpy as np |
分箱操作
分箱操作就是将连续数据转换为分类对应物的过程。⽐如将连续的身⾼数据划分为:矮中⾼。分箱操作分为等距分箱和等频分箱。
分箱操作也叫⾯元划分或者离散化。
1 | import numpy as np |
分组与聚合
1 | import numpy as np |
分组聚合函数 apply 、 transform
1 | # 3、分组后调⽤apply, transform封装单⼀函数计算 |
agg
1 | # 4、 agg 多中统计汇总操作 |
透视表
1 | # 5、透视表 |
1 | import numpy as np |
时间操作
1 | import pandas as pd |
1 | # 1. 创建特定频率的日期范围 |
常用的频率字符串:
‘D’: 日历日
‘B’: 工作日
‘W’: 周
‘M’: 月末
‘Q’: 季末
‘Y’: 年末
‘H’: 小时
‘T’ 或 ‘min’: 分钟
‘S’: 秒
注意事项:
使用 to_datetime 时,如果日期格式不统一,可以使用 format=’mixed’
处理国际时间时,注意时区转换
使用 DateOffset 进行时间计算时,可以组合多个参数
处理大量日期数据时,注意使用适当的格式和频率
这些修改后的代码应该能够正常运行,并展示了 Pandas 中时间日期处理的多种用法。
时间戳索引
1 | import pandas as pd |
1 | import pandas as pd |
更多采样:
1 | # 1. 不同的时间频率重采样 |
时区
1 | index = pd.date_range('8/1/2012 00:00', periods=5, freq='D') |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Calico's Space!
评论





