5分钟入门pandas

pandas在数据处理、数据分析以及数据可视化上都有比较多的应用,这篇文章就带大家走一下整个过程,来个入门。劳动节必须劳动劳动。

1. 基础用法

以下代码在jupyter中运行,Python 版本3.6。

首先导入 pandas

import pandas as pd

# 为了能在jupyter中展示图表
%matplotlib inline
# 从csv文件读取数据,也可从excel、json文件中读取
# 也可以通过sql从数据库读数据
data = pd.read_csv('order_list.csv')
# 输出行列数
data.shape

output:
(1000, 3)

可以看到,变量 data 是一个二维表,有1000行,3列。在 pandas 中这种数据类型被称作 DataFrame。

# 数据基本描述
data.describe()

data 中有3列,good_id、good_cnt 和 order_id 分别代表商品id、购买该商品数量和订单id。最左侧是describe函数统计的指标,包括每一列的数量、均值、标准差、最大值、最小值等等。

# 预览数据,条数可改
data.head(3)

# 获取第2行数据
data.loc[2]

output:
good_id       100042
good_cnt           1
order_id    10000002
Name: 2, dtype: int64
# 获取多行数据,数组元素代表行号
data.loc[[1, 2]]

# 获取商品id=100012的所有记录
data[data['good_id']==100012]

# 获取商品id=100012且每笔订单销量=6的所有记录  
data[(data['good_id']==100087) & (data['good_cnt']==6)]

# 获取订单号在[10000000, 10000042]中的记录
data[data['order_id'].isin([10000000, 10000042])]

# 画100012商品,每笔订单销量折线图
data[data['good_id']==100012]['good_cnt'].plot()

# 画100012商品,销量柱状图
data[data['good_id']==100012]['good_cnt'].hist()

# 更新数据,将第1行的good_cnt列改为10
data.loc[1, 'good_cnt'] = 10
data.head(3)

# 将100012商品每笔订单销量都改为20
data.loc[data['good_id']==100012, 'good_cnt'] = 20
data.head(3)

2. 中级用法

# 统计每种商品出现次数
# 即:每种商品的下单次数
data['good_id'].value_counts()
output:
100080    18
100010    16
100073    16
100097    15
100096    15
          ..
100079     5
100077     5
100007     4
100037     4
100033     4
Name: good_id, Length: 100, dtype: int64
# 取出商品销量列,该列中每个值都加1
data['good_cnt'].map(lambda x: x+1)
output:
0      21
1      11
2       2
3       4
4      10
       ..
995     8
996     9
997     6
998     5
999     9
Name: good_cnt, Length: 1000, dtype: int64

这里,map并不改变原有的 data 中的数据,而是返回新的对象。

# 对数据集每列调用给定的函数
data.apply(len)

这里是对每列执行len函数,当然apply中的len函数也可以换成自定义的 lambda 表达式。另外,如果想按行做处理,则在调用apply函数时加上axis=1参数即可。

# 对数据集中所有元素调用给定函数
# 同样不改变原有数据集
data.applymap(lambda x: x*100) 
# 计算每列之间的相关系数
data.corr()

# 画出相关系数矩阵
pd.plotting.scatter_matrix(data, figsize=(12,8))

以左小角为例,它表示商品id(good_id)和订单id(order_id)之间的相关性。由于点比较分散,没有任何规律,因此可以说明这两列在数据值上没有相关性,这也好理解,因为本来它俩就是不同的概念。

相关系数矩阵一般用于机器学习中观察不同特征之间的相关性。

3. 高级用法

实现SQL join操作


# 构造DateFrame,代表订单发生的城市
order_city_df = pd.DataFrame(\
    dict(order_id=[10000000, 10000001], \
         city=['上海', '北京'])\
)

# 实现join
data.merge(order_city_df, on=['order_id'])

实现SQL group by操作

# 统计每个商品的总销量
data.groupby('good_id')['good_cnt'].sum().reset_index()

遍历 DataFrame 中每行数据

dictionary = {}

for i,row in data.iterrows():
  dictionary[row['good_id']] = row['good_cnt']

pandas的入门就介绍到这里,希望能对你有帮助。对于想继续深入的朋友可以参考pandas官方文档,中英文都有。另外,我们使用pandas一般都是单机来处理,如果数据量比较大,单机运行起来会比较慢。这时候你可能会用到另外一个工具叫 Dask,它的接口兼容 pandas,可以与pandas相互转换,并且可以运行在集群上分布式处理数据。

以上就是本次分享的所有内容,如果你觉得文章还不错,欢迎关注公众号:Python编程学习圈,每日干货分享,发送“J”还可领取大量学习资料。或是前往编程学习网,了解更多编程技术知识。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Pandas是一个Python库,用于数据处理和数据分析。它提供了两个主要的数据结构:Series和DataFrame。 Series是一个一维数组,它可以存储任意类型的数据。DataFrame是一个二维表格,它由多个Series组成。在DataFrame中,每个Series代表着一列数据。 以下是如何使用Pandas进行数据分析的简单步骤: 1. 导入Pandas库 首先,我们需要导入Pandas库: ```python import pandas as pd ``` 2. 读取数据 使用Pandas读取数据非常容易。Pandas支持读取各种格式的数据,例如CSV、Excel、SQL、JSON等。 CSV文件的读取: ```python data = pd.read_csv('data.csv') ``` Excel文件的读取: ```python data = pd.read_excel('data.xlsx') ``` 3. 观察数据 读取数据后,我们需要观察数据的结构和内容,以便更好地了解数据的特征。 观察数据的前几行: ```python data.head() ``` 观察数据的后几行: ```python data.tail() ``` 观察数据的基本信息: ```python data.info() ``` 4. 数据清洗 在观察数据后,我们需要对数据进行清洗和处理,以便更好地使用。 删除重复行: ```python data.drop_duplicates(inplace=True) ``` 删除缺失值: ```python data.dropna(inplace=True) ``` 5. 数据分析 在对数据进行清洗后,我们可以使用Pandas进行数据分析和统计。 计算数据的描述性统计量: ```python data.describe() ``` 查看数据的相关性: ```python data.corr() ``` 6. 数据可视化 最后,我们可以使用Pandas进行数据可视化,以便更好地展示数据的特征和趋势。 绘制折线图: ```python data.plot() ``` 绘制散点图: ```python data.plot.scatter(x='x', y='y') ``` 以上是Pandas的简单入门介绍,希望对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值