python pandas处理数据的优点_python 数据分析、数据处理之超实用的pandas

我在博客上分享的都是在实际项目中遇到的棘手的并且解决的问题,整理出来当作知识总结,希望也能帮助到需要的人。

一、dataframe 的merge方法实现千万条数据的关联

这里的temp1是特征数据,有几千万条,temp2是样本标签,有几万条,现在需要拿出有标签的几万条样本的数据,做后续分析。 之前自己写循环做关联操作,每次循环到150万次左右程序就killed了,内存不足,算不出来。 尝试了好多方法,发现dataframe的merge方法简直不能更好用,只需一行代码就能实现,计算速度也是极快的。merge里面传四个参数,分别是两张表的名称、关联字段的名称、和连接方式(left或right)。

temp1 = pd.read_csv(‘/Users/taorui02/Documents/test_data.txt’)

temp2 = pd.read_csv(‘/Users/taorui02/Documents/test_sample.txt’)

merge_data1 = pd.merge(temp2, temp1, on=’id’, how=’left’)

merge_data1.to_csv(“test.csv”, index=False, sep=’,’)

二、dataframe新增一行数据

dataframe用来做数据处理是十分方便的,可是要增加一行数据的方法我折腾了会儿才解决,因为它不同于修改、赋值。 我们的思维惯性是给新增一行给一个列赋值,其他列默认就是空,可是dataframe不是这样,给一个值是放不到表中的,它也不会报错。正确的放法是把一行数据放到list里面再赋值。

如果是修改赋值,这样就可以:

1.先新建一个dataframe表

import pandas as pd

import numpy as np

df2 = pd.DataFrame(np.arange(16).reshape((4, 4)),

index=[‘a’, ‘b’, ‘c’, ‘d’],

columns=[‘one’, ‘two’, ‘three’, ‘four’])

print(df2)

输出:

one two three four

a 0 1 2 3

b 4 5 6 7

c 8 9 10 11

d 12 13 14 15

2.修改一列

import pandas as pd

import numpy as np

df2 = pd.DataFrame(np.arange(16).reshape((4, 4)),

index=[‘a’, ‘b’, ‘c’, ‘d’],

columns=[‘one’, ‘two’, ‘three’, ‘four’])

df2[‘one’] = 99999

print(df2)

输出:

one two three four

a 99999 1 2 3

b 99999 5 6 7

c 99999 9 10 11

d 99999 13 14 15

  1. 修改特定值

import pandas as pd

import numpy as np

df2 = pd.DataFrame(np.arange(16).reshape((4, 4)),

index=[‘a’, ‘b’, ‘c’, ‘d’],

columns=[‘one’, ‘two’, ‘three’, ‘four’])

df2[‘one’][0] = 99999

print(df2)

输出:

one two three four

a 99999 1 2 3

b 4 5 6 7

c 8 9 10 11

d 12 13 14 15

  1. 使用索引赋值的方式不能实现新增一行,新增的话要用.loc[i]=一个list这种方式。

coding:utf-8

from pandas import *

df = DataFrame(columns=(‘lib’, ‘qty1’, ‘qty2’)) # 生成空的pandas表

df.loc[0] = [1, 3, 4]

print df

输出:

lib qty1 qty2

0 1 3 4

三、dataframe里面的空值判断

在数据处理的过程中,空值是再常见不过的了。 之前没有用pandas的时候判断空值用 if value == ”:来判断,可是到了dataframe里面这种代码就失效了,用if value :判断还是报错,最后发现pandas里面有自带的判断空值的方法。 当在文本文件中,空值为null,读入dataframe中,空值就变成了NaN,使用pd.isnull()或者pd.notnull()对一列进行空值判断,即if pd.notnull(value):来判断。

四、数据读取和保存

  1. 数据读取

普通读取,sep指定文件的分隔符

using_data = pd.read_csv(“/Users/taorui02/Documents/id”, sep=’ ‘)

很多时候我们拿到的数据是没有表头的,这时候读入数据要么不显示表头,加header=None就行,要么根据需要自己定义表头。 自定义表头读取,这里给数据加了两个列名,id、label。

using_data = pd.read_csv(“/Users/taorui02/Documents/id”, sep=’ ‘, header=None, names=[‘id’, ‘label’])

  1. 数据写入CSV

数据处理完写入文件也是有点讲究的,有时候需要表头,有时候不需要,不需要的时候同样加header=None、index=False就可以。 header=None:不显示列名 index=False:不显示索引号

五、逐行打印数据

在hadoop集群上处理数据的时候输出的结果后续需要拆分合并的操作,这时候不能直接保存数据到文件,而是输出,print或者sys.stdout.write(),这时候输出的内容是不能带列名和索引号的,需要逐行打印数据内容。 这里的要点是using_data.loc[index]访问到的不是我们真正想要的,要加上.values才能拿到数据。

import pandas as pd

读入数据

using_data = pd.read_csv(“/Users/taorui02/Documents/id”, sep=’ ‘, header=None, names=[‘id’, ‘label’])

逐行打印

for index in using_data.index:

print(using_data.loc[index].values)

Original: https://blog.csdn.net/weixin_33901614/article/details/112959931
Author: 王俊煜
Title: python pandas处理数据的优点_python 数据分析、数据处理之超实用的pandas

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/753837/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • I2C 子系统(三):I2C Driver

    I2C driver 分四个部分来写 I2C SW Architecture I2C Data Structure I2C Register Flow I2C Data Trans…

    Python 2023年11月7日
    022
  • scrapy持久化存储

    保证爬虫文件的parse方法中有可迭代类型对象(通常为列表or字典)的返回,该返回值可以通过终端指令的形式写入指定格式的文件中进行持久化操作。 执行输出指定格式进行存储:将爬取到的…

    Python 2023年10月3日
    029
  • 【面试实战】面试基本流程【第一版】

    但笔者相信更多的同学选择互联网行业,干程序猿,都是冲着那份高薪来的 不管同学们出于什么样的原因选择了这一行,既然干了就一定要干好 那么势必我们最后一定要落实到那个老生常谈的问题:工…

    Python 2023年6月10日
    066
  • pandas学习

    import pandas as pdimport matplotlib.pyplot as plt plt.rcParams[‘font.sans-serif&#82…

    Python 2023年8月8日
    061
  • MAUI新生4.6-主题设置LightTheme&DarkTheme

    通过主题设置,可以在运行时更改应用的主题外观,比如切换亮色主题和暗黑主题。主题设置并没有新的知识点,基本的原理如下: 定义每个应用主题的ResourceDictionary,每个R…

    Python 2023年10月11日
    051
  • 今天面了个阿里拿27k出来的小哥,让我见识到了什么是天花板

    2022年堪称大学生就业最难的一年,应届毕业生人数是1076万。失业率超50%! 但是我观察到一个数据,那就是已经就业的毕业生中,计算机通信等行业最受毕业生欢迎!计算机IT行业薪资…

    Python 2023年10月8日
    035
  • MMPose姿态估计+人体关键点识别效果演示

    MMPose——开源姿态估计算法库(附人体关键点识别效果演示) 一、简介 1.1 背景 首先姿态估计属于计算机视觉领域的一个基础研究方向。MMPose是基于Pytorch的姿态估计…

    Python 2023年10月8日
    038
  • 【深度学习】生成模型:VAE(自编码器)模型解析

    目录 1 前言 2 VAE模型 * 2.1 VAE模型推导 2.2 重参化技巧 3 QA * 3.1 生成体现在什么地方 3.2 AE和VAE的区别 4 另一种角度理解VAE 5 …

    Python 2023年10月9日
    042
  • python使用vosk进行中文语音识别

    操作系统:Windows10 Python版本:3.9.2 vosk是一个离线开源语音识别工具,它可以识别16种语言,包括中文。 这里记录下使用vosk进行中文识别的过程,以便后续…

    Python 2023年11月2日
    0143
  • visual studio插件开发-Menu

    工欲善其事,必先利其器,作为程序员我们很大部分时间在和ide打交道,好的插件可以大大提高我们的编程效率,我开发过几个vs插件来解决一键生成dbmodels,快速部署到服务器,总结下…

    Python 2023年10月17日
    033
  • requests+pytest+allure实战

    一、项目结构 case:存放测试用例,pytest的测试用例需要用test_ _.py或者__test.py;common:封装一些公共的方法;config:放置配置文件,存放接口…

    Python 2023年9月13日
    037
  • 使用docker镜像拉取rhel8 rpm包

    一、准备环境创建一个干净的RHEL8的系统,然后打包系统文件. ~]# tar –numeric-owner –exclude=/proc –exclude=/sys –e…

    Python 2023年6月10日
    089
  • Scrapy调用proxypool代理

    这段时间要写一个爬虫项目, 但是目标网站ip阈值限制很低, 两下就被ban了, 于是计划引入免费ip代理解决这一情况. 在网上找了很多资料, 但是用起来都是各种奇怪的报错, 只好见…

    Python 2023年10月1日
    031
  • 【C指针】初识指针,轻松了解指针

    ⭐博客主页:️CS semi主页 ⭐欢迎关注:点赞收藏+留言 ⭐系列专栏:C语言初阶 ⭐代码仓库:C Advanced 家人们更新不易,你们的点赞和关注对我而言十分重要,友友们麻烦…

    Python 2023年10月27日
    039
  • 保姆级飞机大战教程(一)

    ps:素材内容在文末,有需要的请自取 1.安装pygame模块 1)在终端输入安装的命令语句 pip install pygame 2)确认是否安装pygame命令 python …

    Python 2023年9月25日
    036
  • 机器学习之支持向量机(SVM)对乳腺癌数据二分类python实现

    文章目录 * – 1. 概述 – 2. 标题数学推导 – + * 2.1 函数间隔 * 2.2 几何间隔 * 2.3 支持向量机 –…

    Python 2023年9月28日
    041
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球