写点什么

【Pandas 学习笔记 02】处理数据实用操作

  • 2021 年 11 月 26 日
  • 本文字数:1637 字

    阅读完需:约 5 分钟

作者:幻好

来源:恒生LIGHT云社区


Pandas 是一个 Python 软件库,它提供了大量能使我们快速便捷地处理数据的函数和方法。在本文将主要介绍 Pandas 的实用数据处理操作。

系列文章:

【Pandas学习笔记01】强大的分析结构化数据的工具集

概述

Pandas 是基于 NumPy 构建的库,在数据处理方面可以把它理解为 NumPy 加强版,同时 Pandas 也是一项开源项目。它基于 Cython,因此读取与处理数据非常快,并且还能轻松处理浮点数据中的缺失数据(表示为 NaN)以及非浮点数据。在本文中,基本数据集操作主要介绍了 CSV 与 Excel 的读写方法,基本数据处理主要介绍了缺失值及特征抽取,最后的 DataFrame 操作则主要介绍了函数和排序等方法。

数据集基础操作

  • 读取 CSV 格式文件中的数据集


import pandas as pd# 方式1 df1 = pd.read_csv(“file.csv”)# 方式2df2 = pd.DataFrame.from_csv(“file.csv”)
复制代码


  • 读取 Excel 格式文件中的数据集


import pandas as pddf = pd.read_excel("file.xlsx")
复制代码


  • 获取基本的数据集特征信息


df.info()
复制代码


  • 查询数据集基本统计信息


print(df.describe())
复制代码


  • 查询所有列的标题名称


print(df.columns)
复制代码


  • 使用 DataFrame 对象将数据写入 CSV 文件


# 采用逗号作为分隔符,且不带索引df.to_csv("data.csv", sep=",", index=False)
复制代码

数据集的处理

首先定义一个 DataFrame 数据集:


import pandas as pd
df = pd.DataFrame(data = [['java',1],['python',2],['golang','3']],index = [1,2,3],columns = ['name','rank'])print(df)
复制代码


打印数据集:


     name rank1    java    12  python    23  golang    3
复制代码

查询数据操作

  • 使用df.loc[index, column] 对具体的行和列的数据进行查询


# 查询指定行和列的数据df.loc[0,'name']#选取第0行到第1行,name列和rank列的数据df.loc[[0,1],['name','age']]#选取name列是M,name和rank列的数据df.loc[df['name']=='java',['name','rank']] 
复制代码


  • 通过df['column_name']df[row_start_index, row_end_index] 对整列或一定范围的行数据进行查询


# 选取单列或多列df['name']df[['name','rank']] #第0行及之后的行df[0:]   # 第1行到第2行(不含第3行)df[1:3]   # 最后一行df[-1:]   
复制代码

增加数据操作

  • 向数据集中增加列数据:


# 在第0列,加上 column 名称为 user_num,值为 user_num 的值user_num = ['100','89','70']df.insert(0,'user_num',user_num) 
# 默认在df最后一列加上column名称为 application,值为 application 的数据application = ['Web','AI','server']df['application'] = application
复制代码


  • 向数据集中增加行数据:


# 若df中没有index为“10”的这一行数据,则新增# 若df中已经有index为“10”的这一行数据,则更新数据。df.loc[10] = ['php',10]
# 向df中追加新的数据new_df = pd.DataFrame(index = True,columns = ['name','rank'])df = df.append(new_df,ignore_index = True)
复制代码

修改数据操作

  • 修改列标题


#只把’user_num’改为’users’,要把所有的列全写上,否则报错。df.columns = ['name', 'rank', 'users'] #只修改name,inplace若为True,直接修改df,否则,不修改df,只是返回一个修改后的数据。df.rename(columns = {'name':'Name'}, inplace = True) 
复制代码


  • 修改数值


# 修改index为‘0’,column为‘name’的那一个值为Cdf.loc[0, 'name'] = 'C'  # 修改index为‘0’的那一行的所有值df.loc[0] = ['java', 1, '1000']  # 修改index为‘0’,column为‘name’的那一个值为Javadf.loc[0,['name','rank']] = ['Java'] # 替换缺失数据df.replace(to_replace=None, value=None)
复制代码

删除数据操作

  • 删除行数据


# 删除index值为2和3的两行df.drop([2,3],axis = 0,inplace = False)
复制代码


  • 删除列数据


# 删除 name 列df.drop(['name'],axis = 1,inplace = False)  del df['name']  # 删除 name 列,操作后,将删除的返回给new_dfnew_df = df.pop('age')  
复制代码

总结

本文主要介绍 Pandas 工具集的实用操作,能够帮助我们解决日常数据处理的基本问题,后续将继续分享高阶技巧,敬请期待。

发布于: 13 小时前阅读数: 8
用户头像

还未添加个人签名 2018.11.07 加入

还未添加个人简介

评论

发布
暂无评论
【Pandas学习笔记02】处理数据实用操作