六个实用Pandas数据处理代码

作者:??编程学习网???? 时间:2023-03-01 05:29:00 

前言:

今天和大家分享自己总结的6个常用的Pandas数据处理代码,对于经常处理数据的coder最好熟练掌握。

选取有空值的行

在观察数据结构时,该方法可以快速定位存在缺失值的行。

df = pd.DataFrame({'A': [0, 1, 2],
                  'B': [0, 1, None],
                  'C': [0, None, 2]})
df[df.isnull().T.any()]

输出:

  A   B   C           A   B   C
0 0 0.0 0.0         1 1 1.0 NaN
1 1 1.0 NaN   -->   2 2 NaN 2.0
2 2 NaN 2.0

快速替换列值

实际数据处理经常会根据一些限定条件来替换列中的值。

df = pd.DataFrame({'name':['Python', 'Java', 'C']})
# 第一种方式
df['name'].replace('Java', 'JavaScript', inplace=True)
# 第二种方式
df.loc[df['name'].str.contains('Java'), 'name'] = 'JavaScript'

输出:

     name                   name
0  Python          0      Python
1    Java    --->  1  JavaScript
2       C          2           C

对列进行分区

很多情况下,对于数值类型的数据,我们需要分区来计算每个区间数据出现的频率。这时用 pd.cut 就能很好的解决这一问题。

import random
age = random.sample(range(90), 20)
cut_res = pd.cut(age, bins=[0, 18, 35, 60, 90])
# cut_res type:<class 'pandas.core.arrays.categorical.Categorical'>
cut_res.value_counts()

输出:

(0, 18]     6
(18, 35]    1
(35, 60]    6
(60, 90]    7

将一列分为多列

在文本数据清洗时,一些列中存在分隔符('', ',', ':')分隔的值,我们只需将该列根据分隔符进行 split 即可。

import pandas as pd
df = pd.DataFrame({'address': ['四川省 成都市',
                              '湖北省 武汉市',
                              '浙江省 杭州市']})
res = df['address'].str.split(' ', expand=True)  
res.columns = ['province', 'city']

输出:

  province city
0 四川省    成都市
1 湖北省    武汉市
2 浙江省    杭州市

expand参数选择是否扩展为 DataFrame,False 则返回 Series

中文筛选

同样在清洗过程中,往往会出现一些不需要的中文字段,这时直接用 str.contains 筛选即可。

df = pd.DataFrame({'mobile_phone':
                  ['15928765644',
                   '15567332235',
                   '暂无']})
df[~df['mobile_phone'].str.contains('[\u4e00-\u9fa5]')]

输出:

  mobile_phone         mobile_phone
0 15928765644        0 15928765644
1 15567332235   -->  1 15567332235
2 暂无

更改列的位置

有时我们需要调整列的位置,当数据列较少时,可以用下面的方式

df = pd.DataFrame({'name': ['A', 'B', 'C'],
                  'age': [10, 20, 30],
                  'gender': [0, 1, 0]})
df = df[['name', 'gender', 'age']]

输出:

 name age gender    name gender age
0   A  10 0        0   A 0       10
1   B  20 1   -->  1   B 1       20
2   C  30 0        2   C 0       30

如果列较多,那么,一个个列举出来会比较繁琐,推荐下面插入的方式。

col = df['gender']
df.drop('gender', axis=1, inplace=True)
df.insert(1, 'gender', col)

这就是今天分享的主要内容,实践永远是最好的学习方式,记忆的也更牢固。

来源:https://juejin.cn/post/7083696267372527653

标签:Pandas,数据,处理
0
投稿

猜你喜欢

  • python为什么会环境变量设置不成功

    2023-01-18 04:33:08
  • 301转向和网址规范化

    2007-09-26 14:00:00
  • 浅谈python str.format与制表符\\t关于中文对齐的细节问题

    2023-05-23 00:39:56
  • Pandas.DataFrame时间序列数据处理的实现

    2022-09-20 08:43:41
  • python 并发下载器实现方法示例

    2022-03-31 10:46:00
  • 浅谈keras 模型用于预测时的注意事项

    2022-10-16 13:23:04
  • Vue官方推荐AJAX组件axios.js使用方法详解与API

    2024-05-05 09:08:06
  • python实现计算器小功能

    2022-07-15 04:33:56
  • Python自然语言处理之词干,词形与最大匹配算法代码详解

    2023-07-23 04:48:37
  • PHP中的session永不过期的解决思路及实现方法分享

    2023-11-20 11:19:23
  • python实现TCP服务器端与客户端的方法详解

    2023-05-17 09:39:39
  • Python图像处理之使用OpenCV检测对象颜色

    2023-05-20 01:00:18
  • Python3.5.3下配置opencv3.2.0的操作方法

    2021-06-20 19:43:53
  • python中引用与复制用法实例分析

    2022-09-04 09:54:35
  • 一篇文章教你用Python实现一键文件重命名

    2022-09-21 20:18:38
  • 功能和外观都还不错的js版幻灯片效果

    2007-08-05 12:20:00
  • vue iview实现动态新增和删除

    2024-05-08 09:34:31
  • java之File对象对文件的操作常用的几个方法(推荐)

    2024-01-14 13:13:27
  • perl中的范围声明our-my-local介绍

    2022-12-15 02:21:50
  • PYTHON发送邮件YAGMAIL的简单实现解析

    2022-04-25 09:23:08
  • asp之家 网络编程 m.aspxhome.com