python 数据处理:(以Pandas为主)

  • 读取数据
  • 添加、修改数据
    • ①添加数据
    • ②修改dataframe的列名字
    • ③将某一列数据转换为自己想要表达的字段
    • ④填充空值
  • 删除数据
    • ①删除指定一行的数据
    • ②删除指定一列的数据
    • ③删除具有空值的数据
    • ③删除具有重复值的数据
  • 合并数据
    • ①按列合并数据
    • ②按行合并
  • 转换数据格式(转换某一列的类型)
    • ①int转float
    • ②str转datetime
  • 查看数据
    • ①查看dataframe中关于数值型数据的描述
    • ②查看dataframe的属性描述,dataframe有多少行,各列数据的属性,占的内存是多少等
    • ③初略的显示dataframe前几行
    • ④统计某一个列中各个值出现的次数:value_counts
    • ⑤快速了解dataframe有几行几列
  • 保存数据
    • ①dataframe转csv
    • ②dataframe转json(转的类型有点多,我贴个链接,大家有兴趣的可以去了解一下)

读取数据

import pandas as pd
df = pd.read_csv('目标csv文件所在的绝对路径或者相对路径')   //其他的读取语法类似,df是自取的名字,pd.read_csv()就是把目标csv文件转换为dataframe格式。

添加、修改数据

①添加数据

import pandas as pd
from numpy import nan as NaNdf1 = pd.DataFrame([['Snow','M',22],['Tyrion','M',32],['Sansa','F',18],['Arya','F',14]], columns=['name','gender','age'])

print("----------在最后新增一列---------------")
print("-------案例1----------")
# 在数据框最后加上score一列,元素值分别为:80,98,67,90
df1['score']=[80,98,67,90]   # 增加列的元素个数要跟原数据列的个数一样

print("-------案例2----------")
print("---------在指定位置新增列:用insert()--------")
# 在gender后面加一列城市
# 在具体某个位置插入一列可以用insert的方法
# 语法格式:列表.insert(index, obj)
# index --->对象 obj 需要插入的索引位置。
# obj ---> 要插入列表中的对象(列名)col_name=df1.columns.tolist()                   # 将数据框的列名全部提取出来存放在列表里
col_name.insert(2,'city')                      # 在列索引为2的位置插入一列,列名为:city,刚插入时不会有值,整列都是NaN
col_name.insert(col_name.index('age'),'education')   # 在age列前面插入一列,列名叫education
df1=df1.reindex(columns=col_name)              # DataFrame.reindex() 对原行/列索引重新构建索引值df1['city'] = ['北京','山西','湖北','澳门']   # 给city列赋值
df1['education'] =['小学','初中','高中','大学']

print("----------新增行---------------")
# 重要!!先创建一个DataFrame,用来增加进数据框的最后一行
new_col=pd.DataFrame({'name':'lisa','gender':'F','city':'广州','education':'幼儿园','age':5,'score':100},index=[1])   # 自定义索引为:1 ,这里也可以不设置indexprint("-------在原数据框df1最后一行新增一行,用append方法------------")
df1=df1.append(new_col,ignore_index=True)   # ignore_index=True,表示不按原来的索引,从0开始自动递增

②修改dataframe的列名字

df1.rename(columns={'score':'mark'},inplace=True)

③将某一列数据转换为自己想要表达的字段

city_mapping = {"北京": "Beijing","山西": "ShanXi","湖北": "HuBi","澳门": "AoMen","广州": "GuangZhou"}
df1['city'] = df1['city'].map(city_mapping)

④填充空值

看情况,如果不想过滤(删除)某些数据,我们可以选择使用fillna()方法填充空值,这里,我使用数值’0’替代NaN,来填充DataFrame。具体填充什么视情况而定,一般填充空值的用0或者该列的平均值来填充的用法比较多。
①先给原先的df1添加两行数据,数据里含有空值

#print("----------新增行---------------")
new = pd.DataFrame({'name':'lisi','gender':'M','city':'Beijing','education':'初中','age':12,'mark':NaN},index=[1])  #print("-------在原数据框df1最后一行新增一行,用append方法------------")
df1 = df1.append(new,ignore_index=True)   # ignore_index=True,表示不按原来的索引,从0开始自动递增#print("----------新增行---------------")
new1 = pd.DataFrame({'name':'lisi','gender':'M','city':'Beijing','education':'初中','age':12,'mark':NaN},index=[1])  df1 = df1.append(new1,ignore_index=True)   # ignore_index=True,表示不按原来的索引,从0开始自动递增


②填充空值

df1 = df1.fillna(0.0)


删除数据

①删除指定一行的数据

df1 = df1.drop(2,axis=0,inplace=False)               #删除第3行

②删除指定一列的数据

df1 = df1.drop('education',axis=1,inplace=False)    #删除education这一列

③删除具有空值的数据

df1.dropna(subset=['mark'],how='all',inplace=True)  #删除mark列中具有空值那些行

③删除具有重复值的数据

#找出"age"存在重复的数据
df1[df1.duplicated(subset=["age"], keep='first')]#删除“成绩”存在重复的数据
df1 = df1.drop_duplicates(subset=["age"], keep='first', inplace=False)

合并数据

①按列合并数据

②按行合并

转换数据格式(转换某一列的类型)

有时候,需要自己调整数据表中某一列的数据类型,有可能是int转float,也有可能是字符串转时间类型。具体需要转什么类型,是情况而定,在这里我就介绍两个比较常用的案例。

①int转float

②str转datetime

查看数据

①查看dataframe中关于数值型数据的描述

df_name.describe()

结果的索引将包括计数,平均值,标准差,最小值,最大值以及较低的百分位数和50。默认情况下,较低的百分位数为25,较高的百分位数为75。50百分位数与中位数相同。

②查看dataframe的属性描述,dataframe有多少行,各列数据的属性,占的内存是多少等

name.info()

③初略的显示dataframe前几行

有时候dataframe的行数太大,显示全部需要非常多的时间,一般显示前几行就够了。

name.head(x)  # 不输入x则表示默认显示前5行

④统计某一个列中各个值出现的次数:value_counts

⑤快速了解dataframe有几行几列

保存数据

将最终的处理好的dataframe转换为文件形式保存。这里我介绍两个个常用的形式

①dataframe转csv

# header是否保存列名   encoding设置以何种格式保存,不设置则默认为utf-8格式,index设置是否保存索引
dataframe_name.to_csv("路径+名字",header=True, encoding=None,index=False)


②dataframe转json(转的类型有点多,我贴个链接,大家有兴趣的可以去了解一下)

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_json.html

如果各位路过朋友觉得对自己有帮助的话,麻烦关注一下小编或者点个赞再走哦~

python 数据处理(以Pandas为主)相关推荐

  1. Python 数据处理工具 Pandas(上)

    序列与数据框的构造 外部数据的读取(文本文件读取.电子表格读取.数据库数据读取) 数据类型转换及描述统计 字符与日期数据的处理 数据清洗方法(重复观测处理.缺失值处理.异常值处理) 数据子集的获取 透 ...

  2. python数据处理工具-Pandas笔记

    序列与数据框的构造 Pandas模块的核心操作对象就是序列Series和数据框DataFrame序列可以理解为数据集中的一个字段数据框是指含有至少两个字段(或序列)的数据集. 构造序列 可以通过以下几 ...

  3. Python数据处理库pandas中的DataFrame数据结构简介

    pandas 中有两大 数据结构 Series和 DataFrame. 本文主要介绍DataFrame的用法.DataFrame可以处理 表格数据. Series介绍在 Python数据处理库pand ...

  4. Python数据处理工具 ——Pandas(数据的预处理)

    0.前言 本文将介绍强大的数据处理模块Pandas,该模块可以帮助数据分析师轻松地解决数据的预处理问题,如数据类型的转换.缺失值的处理.描述性统计分析.数据的汇总等. 通过本章内容的学习,读者将会掌握 ...

  5. 第五章Python数据处理工具 ——Pandas

    前言 上一章向读者介绍了有关数值计算的numpy模块,通过numpy模块可以非常方便地调用各种常用的数学和统计函数.本章将介绍强大的数据处理模块Pandas,该模块可以帮助数据分析师轻松地解决数据的预 ...

  6. Python数据处理工具——Pandas

    目录 一.序列与数据框的构造 1.构造序列 2.构造数据框 二.外部数据的读取 1.文本文件的读取 2.电子表格的读取 pd.read_excel参数介绍: 三.数据类型转换及描述统计 四.字符与日期 ...

  7. Python数据处理之pandas基础入门

    Pandas 是 Python 语言的一个扩展程序库,用于数据分析. Pandas 是一个开放源码.BSD 许可的库,提供高性能.易于使用的数据结构和数据分析工具. Pandas 名字衍生自术语 &q ...

  8. python做数据处理软件_程序员用于机器学习编程的Python 数据处理库 pandas 入门教程...

    入门介绍 pandas适合于许多不同类型的数据,包括: · 具有异构类型列的表格数据,例如SQL表格或Excel数据 · 有序和无序(不一定是固定频率)时间序列数据. · 具有行列标签的任意矩阵数据( ...

  9. Python数据处理-使用Pandas补齐缺失日期(pd.date_range)

    在处理时间序列的数据中,有时候会遇到有些日期的数据缺失的情况,这时候可以用pandas的 date_range 函数快速补齐缺失日期,再根据实际情况补齐缺失值. import pandas as pd ...

  10. python数据处理基础 pandas dataframe

    pandas中dataframe的常用操作. import numpy as np import pandas as pd from pandas import Sereis, DataFramese ...

最新文章

  1. 精度87%!业内首个动静统一的图像分割套件重磅推出
  2. Pytorch+Text-CNN+Word2vec+电影评论情感分析实战
  3. hdu 4503 找全是朋友或全不是朋友
  4. javax.servlet.jsp.JspFactory.getJspApplicationContext(Ljavax/servlet/ServletContext;)Ljavax/servlet/
  5. DHTML_____window对象方法
  6. oc 调用c语言方法和oc的方法调用
  7. 六十八、完成Vue项目推荐和周末游组件,并使用Ajax发起ajax请求
  8. django_mailgun.MailgunAPIError: Response [401]
  9. python编写人机交互界面_Python编写个天气查询应用(可视化界面)
  10. 程序员的成长从开窍开始系列 一、如何摆脱低级错误的困扰
  11. 数据结构与算法-黑盒与白盒测试法
  12. python代码怎么运行_使用Joblib并行运行Python代码
  13. 一天一种设计模式之七-----装饰模式
  14. 小米6X反复自动重启停不下,取下卡槽、电源音量-,ok了
  15. 淘客十大常用网站,成为大牛的起点
  16. mysql手册07_存储引擎
  17. 多图片上传插件webuploader
  18. python 过滤相似图片_Python过滤纯色图片,挑选视频封面
  19. 一天发十万封邮件方法_给老外发邮件,要注意这17点!
  20. 【docker系列】四种基础网络模式及自定义网络

热门文章

  1. excel函数修改服务器端数据,勤哲Excel服务器表达式函数详解
  2. Android历史与版本变迁
  3. php自动发卡程序8.0_「亲测」2020新版个人自动发卡源码 php完整个人发卡网搭建源码...
  4. 2015 kitti 数据集_kitti 数据集解析
  5. session过期删除php,session过期怎么恢复?
  6. 6m缓存和8m缓存差距_i79700和i78700性能差距有多大?i79700和i78700区别对比评测
  7. sql server2008密钥,sql server 2008 r2 序列号密钥
  8. GA遗传算法介绍与实例
  9. 【学习笔记】尚硅谷大数据项目之Flink实时数仓---数据可视化接口实现
  10. Routerboard/DR4019S-Qualcomm-IPQ4019-2T2R-Dual-Band-2-4GHz-5GHz-support-OpenWRT-802.11ac-Wave-2.