Pandas学习笔记02处理数据实用操作
Posted 恒生LIGHT云社区
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pandas学习笔记02处理数据实用操作相关的知识,希望对你有一定的参考价值。
概述
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 工具集的实用操作,能够帮助我们解决日常数据处理的基本问题,后续将继续分享高阶技巧,敬请期待。
以上是关于Pandas学习笔记02处理数据实用操作的主要内容,如果未能解决你的问题,请参考以下文章
译文:18个实用的JavaScript代码片段,助你快速处理日常编程任务