关于pandas:Pandas学习笔记02处理数据实用操作

6次阅读

共计 2230 个字符,预计需要花费 6 分钟才能阅读完成。

作者:幻好

起源:恒生 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”)
# 形式 2
df2 = pd.DataFrame.from_csv(“file.csv”)
  • 读取 Excel 格式文件中的数据集
import pandas as pd
df = 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 rank
1    java    1
2  python    2
3  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’的那一个值为 C
df.loc[0, 'name'] = 'C'  
# 批改 index 为‘0’的那一行的所有值
df.loc[0] = ['java', 1, '1000']  
# 批改 index 为‘0’,column 为‘name’的那一个值为 Java
df.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_df
new_df = df.pop('age')  

总结

本文次要介绍 Pandas 工具集的实用操作,可能帮忙咱们解决日常数据处理的根本问题,后续将持续分享高阶技巧,敬请期待。

正文完
 0