【Python数据分析基础】Pandas常用功能总结之思维导图

一、Pandas简介

Pandas是一个专门用于数据分析的开源Python库,在做相关统计分析和决策时,pandas都是一项重要的基础工具。它以NumPy为基础,不仅使Pandas兼容性更强,也更高效。

Pandas 中有两种独特的数据结构:Series和DataFrame,这两种数据结构设计初衷是用于关系型或带标签的数据。用它们管理与SQL关系型数据库和Excel工作表具有类似特征的数据会非常方便。

本文参考书籍:

Python数据分析实战( by Fabio Nelli)
Python数据分析(by Armando Fandango)
利用Python进行数据分析(by Wes McKinney )

本文不涉及过多细节,力求将Pandas包含的主要功能通过思维导图清晰地展现出来,在工作时可以根据思维导图获得Intuition, 再去找相关的代码详情。

二、Get Some Intuition

直观地了解两种数据结构最好的方式就是看下他们长啥样:

1. Series

import pandas as pd

ser = pd.Series([5, 6, 7, 8], index=['a', 'b', 'c', 'd'])
print(ser)

在这里插入图片描述

2. DataFrame

import pandas as pd
frame = pd.DataFrame({'color': ['white', 'red', 'green', 'red', 'green'],
                      'object': ['pen', 'pencil', 'pencil', 'ashtray', 'pen'],
                      'price1': [5.56, 4.2, 1.3, 0.56, 2.75],
                      'price2': [4.75, 4.12, 1.6, 0.75, 3.15]})
 print(frame)

在这里插入图片描述

三、思维导图

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

四、部分功能的代码演示

1.数据拼接

#np数组的拼接
array1 = np.array([[1,2], [3,4]])
array2 = np.array([[5,6], [7,8]])
array = np.concatenate([array1, array2], axis=1)
# array = np.array([[1,2,5,6], [3,4,7,8]])
# Series对象的拼接,DataFrame与这个类似
ser1 = pd.Series(np.ones(3), index=[1,2,3])
ser2 = pd.Series(np.zeros(3), index=[4,5,6])
ser3 = pd.concat([ser1, ser2], axis=0)
ser4 = pd.concat([ser1, ser2], axis=1)

在这里插入图片描述

2.数据映射,相当于Excel的vlookup函数

frame = pd.DataFrame({'color': ['white', 'red', 'yellow'],
                      'item': ['ball', 'pen', 'pencil']})
price = {'ball': 5, 'pen': 10, 'pencil': 2}
frame['price'] = frame['item'].map(price)

在这里插入图片描述

3.数据聚合GroupBy

# 第一步,选择分组依据,可以传入多列
frame = pd.DataFrame({'color': ['white', 'red', 'green', 'red', 'green'],
                      'object': ['pen', 'pencil', 'pencil', 'ashtray', 'pen'],
                      'price1': [5.56, 4.2, 1.3, 0.56, 2.75],
                      'price2': [4.75, 4.12, 1.6, 0.75, 3.15]})
group = frame.groupby(frame['color'])
print(group)
# output:<pandas.core.groupby.groupby.DataFrameGroupBy object at 0x000002414987E080>

#第二步,对分组数据进行聚合
group_mean = group.mean()
print(group_mean)
# output:        price1  price2
#        color
#        green   2.025   2.375
#        red     2.380   2.435
#        white   5.560   4.750

#第三部,选择所需要的列
result = group_mean['price1']

#一行代码完成三步操作
result = frame['price1'].groupby(frame['color']).mean()
print(result)
# output:
# color
# green    2.025
# red      2.380
# white    5.560
# Name: price1, dtype: float64

4.数据透视表

pd.pivot_table(data, values=None, index=None, columns=None, aggfunc=‘mean’, fill_value=None, margins=False, dropna=True, margins_name=‘All’)
对应Excel的数据透视表,values是值,index是行,columns是列,aggfunc是聚合函数,行和列可以用列表传入多个值。

frame = pd.DataFrame({'color': ['white', 'red', 'green', 'red', 'green'],
                      'object': ['pen', 'pencil', 'pencil', 'ashtray', 'pen'],
                      'price1': [5.56, 4.2, 1.3, 0.56, 2.75],
                      'price2': [4.75, 4.12, 1.6, 0.75, 3.15]})
print(pd.pivot_table(frame, columns='color', aggfunc=np.sum))

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43756456/article/details/86005887