Pandas 数据分析 实用小技巧(二)

Pandas 数据分析 实用小技巧(二)

小技巧6:如何快速找出 DataFrame 所有列 null 值个数?

实际使用的数据,null 值在所难免。如何快速找出 DataFrame 所有列的 null 值个数?
使用 Pandas 能非常方便实现,只需下面一行代码:

data.isnull().sum()

data.isnull(): 逐行逐元素查找元素值是否为 null.
.sum(): 默认在 axis 为 0 上完成一次 reduce 求和。
读取泰坦尼克预测生死的数据集

data = pd.read_csv('titanicdataset-traincsv/train.csv')

结果:以列为约束,获得每列的空值总数

PassengerId      0
Survived         0
Pclass           17

小技巧7:如何用 Pandas 快速生成时间序列数据?

与时间序列相关的问题,平时还是挺常见的。
介绍一个小技巧,使用 pd.util.testing.makeTimeDataFrame
只需要一行代码,便能生成一个 index 为时间序列的 DataFrame:

import pandas as pd
pd.util.testing.makeTimeDataFrame(10)

image.png
时间序列的间隔还能配置,默认的 A B C D 四列也支持配置。

import numpy as np
df = pd.DataFrame(np.random.randint(1,1000,size=(10,3)),
                  columns = ['商品编码','商品销量','商品库存'])
df.index = pd.util.testing.makeDateIndex(10,freq='H')

image.png

小技巧8:如何重新排序 DataFrame 的列?

某些场景需要重新排序 DataFrame 的列,如下 DataFrame:

如何将列快速变为:

方法1,直接了当:

df2 = df[["A", "C", "D", "F", "E", "G", "B"]]
df2

方法2,也了解下:

cols = df.columns[[0, 2 , 3, 5, 4, 6, 1]]
df3 = df[cols]
df3

小技巧9:如何完成数据下采样,调整步长由小时为天?

步长为小时的时间序列数据,有没有小技巧,快速完成下采样,采集成按天的数据呢?
先生成测试数据:

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randint(1,10,size=(240,3)), \
columns = ['商品编码','商品销量','商品库存'])
df.index = pd.util.testing.makeDateIndex(240,freq='H')
df

生成 240 行步长为小时间隔的数据:
image.png
小技巧,使用 resample 方法,合并为天(D)

day_df = df.resample("D")["商品销量"].sum().to_frame()
day_df

结果如下,10行,240小时,正好为 10 days:
image.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值