Python 使用pandas库处理csv文件

Python数据分析系列

第一章 csv文件处理进阶



一、pandas是什么?

pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

二、使用步骤

1.引入库

# 导入 csv 库
import pandas as pd

2.读入数据

# 打开文件
with open(in_data_path, 'r',encoding="utf-8-sig") as f_in:
    # 读取文件
    data = pd.read_csv(f_in, encoding="utf-8-sig")

读取的数据为:
csv

3.数据获取和处理

3.1 获取表头/文件头

# 获取文件头/表头
head = data.head()
print("the head of this csv is {}\n".format(head))

结果如下:

打印

3.2 获取行/列数据

3.2.1 获取某一/多行数据
# 获取除了表头的第一行数据
line_value = data.iloc[1]
print("the first line is \n{}".format(line_value))

# 通过切片的方式获取多行数据
line_values = data.iloc[:2]
print("lines are \n{}".format(line_values ))

结果如下:
在这里插入图片描述
在这里插入图片描述

3.2.2 获取某一/多列数据
# 获取第一列的数据
data_list = data.iloc[:, 0]
print("the first list is \n{}".format(data_list))

# 获取前两列的数据
data_list = data.iloc[:, :2]
print("lists are \n{}".format(data_list))

结果如下:
在这里插入图片描述
在这里插入图片描述

当然如果你已经知道自己需要获取的列的表头是什么了,比如“name”,你也可以这样获取这列的内容:

 # 获取某一列的值
 value = data['name']
 for item in value:
     print("itmes in name is {}".format(item))

结果如下:
在这里插入图片描述

3.3 查找数据

# 查找符合条件的数据索引,tolist是将结果以列表的形式存储
index = data[data['score'] == 99].index.tolist()
print("the index is {}".format(index))

结果如下:
在这里插入图片描述

3.4 修改数据

# 更改分数
value = data['score']
print(type(value))
for key, val in value.iteritems():
    if val < 95.0:
        value[key] = 96.0
print(data)

结果如下图所示:
在这里插入图片描述

3.5 删除数据

3.5.1 删除数据所在行
# 查找符合条件的数据索引,tolist是将结果以列表的形式存储
index = data[data['score'] == 99].index.tolist()
print("the index is {}".format(index))
data.drop(index, inplace=True)
# 参数:inplace=True
# 是在原文件进行更改,Flase表示不更改,需要赋值
print(data)

结果如下:
在这里插入图片描述

这里只是做了最简单的处理,drop函数还有很多参数,有更丰富的处理选择,详细的可以看这篇博客:

3.5.2 删除数据所在列

当知晓某列数据的名称时,例如“name”,可以通过usecols参数来实现:

# 删除某列数据
header = [*pd.read_csv(in_data_path, nrows=1)]
new_data = pd.read_csv(in_data_path, usecols=[c for c in header if c != 'name'])
print(new_data)

结果如下:
在这里插入图片描述


总结

以上为一杯冰糖在学习与使用中接触到的部分用法,肯定是不够全面的,一杯冰糖会在以后慢慢扩充或者开新的文章记录pandas库处理csv文件的各种知识

  • 11
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值