箱线图
箱线图(box plot): 可视化基本的统计数据,如离群值、最小/最大值,四分位值等
- 更多详细的讲解请点击这个链接
In [42]:
data.boxplot(column=['Attack','Defense'])
plt.show()
# 动手实践一下 data.boxplot(column=['Attack','Defense']) plt.show()

In [43]:
# 加入分类数据列‘Legendary’ data.boxplot(column='Attack',by='Legendary') plt.show()

重塑数据
我们使用melt()函数来转换数据的行列。
参数:
- pandas.melt(frame, id_vars=None, value_vars=None, var_name=None, value_name='value', col_level=None)
- frame:要处理的数据集。
- id_vars:不需要被转换的列名。
- value_vars:需要转换的列名,如果剩下的列全部都要转换,就不用写了。
- var_name和value_name是自定义设置对应的列名。
我们直接看下面的示例来理解melt()。
In [44]:
# 从pokemon数据中创建一组新的数据 data_new = data[10:15] # 取10-14行共5行数据来构建新数据表 data_new
Out[44]:
| # | Name | Type 1 | Type 2 | Total | HP | Attack | Defense | Sp. Atk | Sp. Def | Speed | Generation | Legendary | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 10 | 8 | Wartortle | Water | NaN | 405 | 59 | 63 | 80 | 65 | 80 | 58 | 1 | False |
| 11 | 9 | Blastoise | Water | NaN | 530 | 79 | 83 | 100 | 85 | 105 | 78 | 1 | False |
| 12 | 9 | BlastoiseMega Blastoise | Water | NaN | 630 | 79 | 103 | 120 | 135 | 115 | 78 | 1 | False |
| 13 | 10 | Caterpie | Bug | NaN | 195 | 45 | 30 | 35 | 20 | 20 | 45 | 1 | False |
| 14 | 11 | Metapod | Bug | NaN | 205 | 50 | 20 | 55 | 25 | 25 | 30 | 1 | False |
In [45]:
# 使用一下melt()函数 # frame:要处理的数据集 # id_vars:不需要被转换的列名 # value_vars :需要转换的列名 melted = pd.melt(frame=data_new,id_vars = 'Name', value_vars= ['Attack','Defense']) melted
Out[45]:
| Name | variable | value | |
|---|---|---|---|
| 0 | Wartortle | Attack | 63 |
| 1 | Blastoise | Attack | 83 |
| 2 | BlastoiseMega Blastoise | Attack | 103 |
| 3 | Caterpie | Attack | 30 |
| 4 | Metapod | Attack | 20 |
| 5 | Wartortle | Defense | 80 |
| 6 | Blastoise | Defense | 100 |
| 7 | BlastoiseMega Blastoise | Defense | 120 |
| 8 | Caterpie | Defense | 35 |
| 9 | Metapod | Defense | 55 |
数据透视表
pivot()函数根据列值重塑数据,生成“数据透视表”。
参数:
- DataFrame.pivot_table(index=None, columns=None, values=None)
- index: 重塑的新表的索引名称是什么
- columns:重塑的新表的列名称是什么
- values: 生成的新列中的值是什么
看起来可能有点迷惑,我们直接看下面的例子
In [46]:
# 我希望能根据上面的'melted'数据表生成一张新表 # 新表可以显示口袋妖怪的名字,及对应的防御值和攻击值 # 设置index为'Name' # 设置columns为'variable' # 设置values为value # 看一看新的数据表是否按照我们的想法显示 melted.pivot(index = 'Name', columns = 'variable',values='value')
Out[46]:
| variable | Attack | Defense |
|---|---|---|
| Name | ||
| Blastoise | 83 | 100 |
| BlastoiseMega Blastoise | 103 | 120 |
| Caterpie | 30 | 35 |
| Metapod | 20 | 55 |
| Wartortle | 63 | 80 |
数据连接
接下来我们学习如何将两个dataframe连接在一起。
In [47]:
# 首先生成两个新的dataframe data1 = data.head(3) data2= data.tail(3) # 使用comcat()函数将两个表拼接在一起 conc_data_row = pd.concat([data1,data2],axis =0,ignore_index =True) # axis = 0 : 行拼接,即纵向拼接 conc_data_row
后面就靠大家自己操作啦,多研究研究会有成长滴。

128万+

被折叠的 条评论
为什么被折叠?



