python如何读取指定csv单元格

 更新时间:2024年02月04日 09:38:14   作者:13572025090  
这篇文章主要介绍了python如何读取指定csv单元格方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

python读取指定csv单元格

可以使用Python的pandas库读取csv文件中的指定单元格。

例如,假设有一个名为"data.csv"的文件,要读取其第2行第3列的单元格,可以这样做:

import pandas as pd
 
# 读取csv文件
df = pd.read_csv("data.csv")
 
# 读取指定单元格
value = df.iloc[1, 2]
 
print(value)

其中,iloc函数用于读取指定行、列的单元格。

第一个参数是行索引,第二个参数是列索引。

对csv文件指定单元格的处理

CSV文件:Comma-Separated Values,逗号分隔值或者字符分割值,其文件以纯文本的形式存储表格数据。用文本文件和Excel都可以打开CSV文件。

下面是分别用excel和记事本打开的两个csv文件。 

规范的t.csv

图1

非规范的test.csv

注意: 

  • 如果单元格内容中存在逗号,那么这个单元格内容会用双引号分隔出来。如图中test.csv中第一个单元格。
  • 如果单元格内容中存在双引号,那在记事本打开同样会多加引号,具体怎么加这里csv的处理规则好像有点奇怪,目前我也还没完全搞明白。

一般的csv文件都有规范的表头和对应的每行数据,前两张图片中打开的都是规范的csv文件,后两张图片打开的是非规范的csv文件,而Python的csv库中也只有对csv文件整行的操作,并没有像excel一样可以对任意单元格操作,所以要对非规范的csv文件操作任意单元格是困难的。

本文实现了对非规范的csv文件的操作。 

思路:csv–>二维列表–>通过列表定位单元格–>列表重写成csv

代码如下:

import csv


class HandleCsv:
    # 定义存放csv内容的list
    csv_list = []

    def __init__(self, filename):
        self.filename = filename
        with open(self.filename)as fp:
            self.csv_list = list(csv.reader(fp))
            print(self.csv_list)

    # 在第N行第M列空白单元格处修改内容
    def modify(self, n, m, value):
        self.csv_list[n - 1][m - 1] = value

    # 插入第N行
    def insert_row(self, n):
        self.csv_list.insert(n - 1, [])

    # 在第N行第M列单元格插入
    def insert_col(self, n, m, value):
        # 如果该单元格左边的单元格为空,那么先对左边的单元格写入空格
        if len(self.csv_list[n - 1]) < m:
            if len(self.csv_list[n - 1]) == m - 1:
                self.csv_list[n - 1].append(value)
            else:
                for i in range(len(self.csv_list[n - 1]), m - 1):
                    self.csv_list[n - 1].append('')
                self.csv_list[n - 1].append(value)
        else:
            self.modify(n, m, value)

    # 删除第N行
    def del_row(self, n):
        del self.csv_list[n - 1]

    # 获取第n行第m列单元格内容
    def get_value(self, n, m):
        return self.csv_list[n - 1][m - 1]

    def list2csv(self, file_path):
        try:
            fp = open(file_path, 'w')
            for items in self.csv_list:
                for i in range(len(items)):
                    # 若元素中含有逗号,那么需要加双引号
                    if items[i].find(',') != -1:
                        fp.write('\"')
                        fp.write(items[i])
                        fp.write('\"')
                    else:
                        fp.write(items[i])
                    # 最后一个元素不用加逗号
                    if i < len(items) - 1:
                        fp.write(',')
                fp.write('\n')
        except Exception as e:
            print(e)


if __name__ == '__main__':
    h_csv = HandleCsv(u'test.csv')
    # 在第4行处插入一行
    h_csv.insert_row(4)
    # 在第4行第4列处插入单元格
    h_csv.insert_col(4, 4, '第4行,第4列')
    h_csv.list2csv(u'test.csv')

运行程序前的csv:

运行程序后的csv:

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 解读卷积神经网络的人脸识别

    解读卷积神经网络的人脸识别

    这篇文章主要介绍了解读卷积神经网络的人脸识别问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • Python中集合的创建及常用函数的使用详解

    Python中集合的创建及常用函数的使用详解

    这篇文章主要为大家详细介绍了Python中集合的创建、使用和遍历,集合常见的操作函数,集合与列表,元组,字典的嵌套,感兴趣的小伙伴可以了解一下
    2022-06-06
  • numpy中的delete删除数组整行和整列的实例

    numpy中的delete删除数组整行和整列的实例

    今天小编就为大家分享一篇numpy中的delete删除数组整行和整列的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • python集合用法实例分析

    python集合用法实例分析

    这篇文章主要介绍了python集合用法,较为详细的分析了Python中集合的常见用法,需要的朋友可以参考下
    2015-05-05
  • python实现的按要求生成手机号功能示例

    python实现的按要求生成手机号功能示例

    这篇文章主要介绍了python实现的按要求生成手机号功能,涉及Python流程控制、随机数操作及数学运算相关实现技巧,需要的朋友可以参考下
    2019-10-10
  • 超详细注释之OpenCV Haar级联检测器进行面部检测

    超详细注释之OpenCV Haar级联检测器进行面部检测

    这篇文章主要介绍了OpenCV Haar级联检测器进行面部检测,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • python利用后缀表达式实现计算器功能

    python利用后缀表达式实现计算器功能

    这篇文章主要为大家详细介绍了python利用后缀表达式实现计算器功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-02-02
  • Python 网易易盾滑块验证功能的实现

    Python 网易易盾滑块验证功能的实现

    这篇文章主要介绍了Python 网易易盾滑块验证,主要是借助之前写阿里云盾滑块和极验滑块的经验写的本文,通过使用selenium请求url,并触发滑块验证,需要的朋友可以参考下
    2022-05-05
  • PyTorch实现手写数字的识别入门小白教程

    PyTorch实现手写数字的识别入门小白教程

    这篇文章主要介绍了python实现手写数字识别,非常适合小白入门学习,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • Python办公自动化解决world文件批量转换

    Python办公自动化解决world文件批量转换

    本文分享如何用 Python 来读取 Word、写入 Word、将 Word 转换为 pdf。学会之后,如果遇到大量 Word 文件需要处理的时候,就不慌了
    2021-09-09

最新评论