使用pandas处理数据的一些总结

1、替换换行符等特殊符号

df = df.replace({None: "", np.nan: "", "\t": "", "\n": "", "\x08": ""}, regex=True)

2、清除DataFrame中所有数据的左右空格,字符串中间空格不会清除,类似于字符串的strip()方法,如果是Serise类型可以使用df.str.strip()方法

df = df.applymap(lambda x: " ".join(x.split()) if isinstance(x, str) else x)

3、dataframe数据去重

dataframe数据样本:

import pandas as pd
df = pd.DataFrame({'name':['苹果','梨','草莓','苹果'], 'price':[7,8,9,8], 'cnt':[3,4,5,4]})

   name	cnt	price
0	苹果	 3	7
1	 梨	 4	 8
2	草莓	 5	9
3	苹果	 6	8

3.1、查看dataframe的重复数据

a = df.groupby('price').count()>1
price = a[a['cnt'] == True].index
repeat_df = df[df['price'].isin(price)]

3.2、duplicated()方法判断

3.2.1、 判断dataframe数据某列是否重复

flag = df.price.duplicated()

0    False
1    False
2    False
3     True
Name: price, dtype: bool

flag.any()结果为True  (any等于对flag or判断)
flag.all()结果为False  (all等于对flag and判断)

3.2.2、判断dataframe数据整行是否重复

flag = df.duplicated()
判断方法同1

3.2.3、判断dataframe数据多列数据是否重复(多列组合查)

df.duplicated(subset = ['price','cnt'])
判断方法同1

>> drop_duplicats()方法去重

4. 对dataframe数据数据去重

DataFrame.drop_duplicates(subset=None, keep='first', inplace=False)

示例:
df.drop_duplicats(subset = ['price','cnt'],keep='last',inplace=True)

drop_duplicats参数说明:
  参数subset
    subset用来指定特定的列,默认所有列
  参数keep
    keep可以为first和last,表示是选择最前一项还是最后一项保留,默认first
  参数inplace
    inplace是直接在原来数据上修改还是保留一个副本,默认为False

4、 文件中含有换行符时,需要保留换行符

import csv

import pandas as pd
#
data = {'col1': ['Hello\nWorld', 'Line\nbreak"'], 'col2': [1, 2]}
df = pd.DataFrame(data)
print(df)
df.to_csv('data.csv', line_terminator='\n', quoting=csv.QUOTE_ALL, index=False, header=False)

df = pd.read_csv('data.csv', header=None)
print(df)

运行结果:

5、当csv文件入hive时,遇到空值需要在hive中显示为null值

CREATE TABLE my_table
(
    id    int comment '编号',
    name  string comment '名称',
    money decimal(10, 2) comment '金钱'
)
    ROW FORMAT DELIMITED
        FIELDS TERMINATED BY ','
        LINES TERMINATED BY '\n'
        NULL DEFINED AS ''
    STORED  AS TEXTFILE
    TBLPROPERTIES ("serialization.null.format"='');

NULL DEFINED AS ''将空字符串视为NULL值,'serialization.null.format'=''则用于指定NULL值在数据文件中的表示方式。通过这种方式,我们可以同时使用NULL DEFINED AS ''和serialization.null.format=''来将NULL值和空字符串表示在Hive中的一致性。
也可以修改已存在的表,如下 

alter table my_table set serdeproperties('serialization.null.format' = '');

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/274851.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

庙算兵棋推演AI开发初探(2-编写策略(上))

开始研读step()函数的编写方法。 这个是图灵网提供了一些基础的ai代码下载(浏览需要注册,下载需要审批)。 AI开发中心-人机对抗智能 (ia.ac.cn)http://turingai.ia.ac.cn/ai_center/show 一、代码研读(BaseAgent类) 1.step函数 这段代码定…

git的常用命令以及在可视化工具中的使用方法

一.引言 想当初在刚进公司的时候,对于git的使用非常不熟悉,特别是分支的概念,导致开发效率变低,故通过此文章,总结git的使用经验 二.Git 常用命令详解 2.1 git clone [url]: 克隆远程仓库到本地 刚开始时&#xff0c…

机器学习深度学习面试笔记

机器学习&深度学习面试笔记 机器学习Q. 在线性回归中,如果自变量之间存在多重共线性,会导致什么问题?如何检测和处理多重共线性?Q. 什么是岭回归(Ridge Regression)和Lasso回归(Lasso Regression)?它们与普通线性回…

Three.js基础入门介绍——Three.js学习三【借助控制器操作相机】

在Three.js基础入门介绍——Three.js学习二【极简入门】中介绍了如何搭建Three.js开发环境并实现一个包含旋转立方体的场景示例,以此为前提,本篇将引进一个控制器的概念并使用”轨道控制器”(OrbitControls)来达到从不同方向展示场…

Linux下安装RocketMQ

1、创建文件夹app/rocketMQ 在xshell里可以找到这里,xftp可以直接创建文件夹,并上传文件,也可以使用命令创建文件夹, 创建文件夹命令:mkdir app、mkdir rocketMQ 2、上传好后解压 使用命令解压 unzip 压缩包名 3、获…

基于Python的城市热门美食数据可视化分析系统

温馨提示:文末有 CSDN 平台官方提供的学长 QQ 名片 :) 1. 项目简介 本项目利用网络爬虫技术从XX点评APP采集北京市的餐饮商铺数据,利用数据挖掘技术对北京美食的分布、受欢迎程度、评价、评论、位置等情况进行了深入分析,方便了解城市美食店…

❀My小学习之排序算法❀

目录 排序算法(Sorting algorithm):) 一、定义 二、分类 三、评价标准 排序算法(Sorting algorithm):) 一、定义 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的…

[MySQL] MySQL 高级(进阶) SQL 语句

一、高效查询方式 1.1 指定指字段进行查看 事先准备好两张表 select 字段1,字段2 from 表名; 1.2 对字段进行去重查看 SELECT DISTINCT "字段" FROM "表名"; 1.3 where条件查询 SELECT "字段" FROM 表名" WHERE "条件…

Feature Prediction Diffusion Model for Video Anomaly Detection 论文阅读

Feature Prediction Diffusion Model for Video Anomaly Detection论文阅读 Abstract1. Introduction2. Related work3. Method3.1. Problem Formulation3.2. Feature prediction diffusion module 3.3. Feature refinement diffusion module4. Experiments and discussions4.1…

ArcGIS Pro中Conda环境的Scripts文件解读

Scripts中包含的文件如下 1. propy.bat 用于在 ArcGIS Pro 外部运行 Python 脚本(扩展名为 .py 的文件)。使用的conda环境是与ArcGIS pro环境同步。propy.bat原理是代替各自python环境下的python.exe,主要区别是propy.bat使用的是与Pro同的…

比起 Pandas, 你更需要 Polars:详细指南

在数据分析领域,Python 由于其多功能性和广泛的库生态系统而成为一种流行的语言。数据处理和分析在提取见解和做出明智决策方面发挥着至关重要的作用。然而,随着数据集的规模和复杂性不断增长,对高性能解决方案的需求变得至关重要。 有效地处…

JMeter控制器之While控制器

1. 背景 存在一些使用场景,比如:某个请求必须等待上一个请求正确响应后才能开始执行。或者,不断去请求某个接口的响应结果,当它达到某个状态时才开始后续请求。(例如:某系统中存在一个功能:判断…

Android : 画布的使用 简单应用

示例图: MyView.java: package com.example.demo;import android.content.Context; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.view.Vi…

Linux内核定时器-模块导出符号表

Linux内核定时器 定时器的当前时间如何获取? jiffies:内核时钟节拍数 jiffies是在板子上电这一刻开始计数,只要 板子不断电,这个值一直在增加(64位)。在 驱动代码中直接使用即可。 定时器加1代表走了多长时间&#xff…

一.windows2012搭建fpt服务器和常见端口介绍

一.windows2012搭建fpt服务器和常见端口介绍 1.打开防火墙2.创建组2.1打开计算机管理2.2创建组并且设置名称和描述 3.创建用户3.1设置用户密码和名称3.2把用户归属于组3.3把user删除掉3.4点击添加然后点高级3.5点击立即查找选择之前设定的组 4.安装ftp服务器4.1点击添加角色和功…

重生奇迹mu中玩家之间的交易操作

重生奇迹mu游戏中的直接交易 在重生奇迹mu中的交易总共有四种方式。第一种就是玩家之间直接进行交易,具体操作就是点击你所要交易的玩家,这个点击的意思是指你把鼠标移动到这名玩家的角色身上,然后你就锁定了此玩家,同时游戏界面…

每日一题 2735. 收集巧克力(中等)

暴力枚举,真难甭 class Solution:def minCost(self, nums: List[int], x: int) -> int:n len(nums)f nums[:]ans sum(f)for k in range(1, n):for i in range(n):f[i] min(f[i], nums[(i k) % n])ans min(ans, k * x sum(f))return ans

深入探索MongoDB集群模式:从高可用复制集

MongoDB复制集概述 MongoDB复制集主要用于实现服务的高可用性,与Redis中的哨兵模式相似。它的核心作用是数据的备份和故障转移。 复制集的主要功能 数据复制:数据写入主节点(Primary)时,自动复制到一个或多个副本节…

【头歌实训】Spark 完全分布式的安装和部署(新)

文章目录 第1关: Standalone 分布式集群搭建任务描述相关知识课程视频Spark分布式安装模式主机映射免密登录准备Spark安装包配置环境变量修改 spark-env.sh 配置文件修改 slaves 文件分发安装包启动spark验证安装 编程要求测试说明答案代码 第1关: Stand…

Google Chrome 现在会在后台扫描泄露的密码

谷歌表示,Chrome 安全检查功能将在后台运行,检查网络浏览器中保存的密码是否已被泄露。 如果桌面用户正在使用标记为危险的扩展程序(从 Chrome Web Store 中删除)、最新的 Chrome 版本,或者如果启用安全浏览来阻止 Go…