欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python如何讀取指定csv單元格

 更新時(shí)間:2024年02月04日 09:38:14   作者:13572025090  
這篇文章主要介紹了python如何讀取指定csv單元格方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

python讀取指定csv單元格

可以使用Python的pandas庫(kù)讀取csv文件中的指定單元格。

例如,假設(shè)有一個(gè)名為"data.csv"的文件,要讀取其第2行第3列的單元格,可以這樣做:

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

其中,iloc函數(shù)用于讀取指定行、列的單元格。

第一個(gè)參數(shù)是行索引,第二個(gè)參數(shù)是列索引。

對(duì)csv文件指定單元格的處理

CSV文件:Comma-Separated Values,逗號(hào)分隔值或者字符分割值,其文件以純文本的形式存儲(chǔ)表格數(shù)據(jù)。用文本文件和Excel都可以打開CSV文件。

下面是分別用excel和記事本打開的兩個(gè)csv文件。 

規(guī)范的t.csv

圖1

非規(guī)范的test.csv

注意: 

  • 如果單元格內(nèi)容中存在逗號(hào),那么這個(gè)單元格內(nèi)容會(huì)用雙引號(hào)分隔出來(lái)。如圖中test.csv中第一個(gè)單元格。
  • 如果單元格內(nèi)容中存在雙引號(hào),那在記事本打開同樣會(huì)多加引號(hào),具體怎么加這里csv的處理規(guī)則好像有點(diǎn)奇怪,目前我也還沒(méi)完全搞明白。

一般的csv文件都有規(guī)范的表頭和對(duì)應(yīng)的每行數(shù)據(jù),前兩張圖片中打開的都是規(guī)范的csv文件,后兩張圖片打開的是非規(guī)范的csv文件,而Python的csv庫(kù)中也只有對(duì)csv文件整行的操作,并沒(méi)有像excel一樣可以對(duì)任意單元格操作,所以要對(duì)非規(guī)范的csv文件操作任意單元格是困難的。

本文實(shí)現(xiàn)了對(duì)非規(guī)范的csv文件的操作。 

思路:csv–>二維列表–>通過(guò)列表定位單元格–>列表重寫成csv

代碼如下:

import csv


class HandleCsv:
    # 定義存放csv內(nèi)容的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列空白單元格處修改內(nèi)容
    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):
        # 如果該單元格左邊的單元格為空,那么先對(duì)左邊的單元格寫入空格
        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列單元格內(nèi)容
    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)):
                    # 若元素中含有逗號(hào),那么需要加雙引號(hào)
                    if items[i].find(',') != -1:
                        fp.write('\"')
                        fp.write(items[i])
                        fp.write('\"')
                    else:
                        fp.write(items[i])
                    # 最后一個(gè)元素不用加逗號(hào)
                    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')

運(yùn)行程序前的csv:

運(yùn)行程序后的csv:

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 深入解析Python中函數(shù)的參數(shù)與作用域

    深入解析Python中函數(shù)的參數(shù)與作用域

    這篇文章主要介紹了Python中函數(shù)的參數(shù)與作用域,是Python入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2016-03-03
  • Python+moviepy實(shí)現(xiàn)音頻/視頻提取器

    Python+moviepy實(shí)現(xiàn)音頻/視頻提取器

    這篇文章主要為大家詳細(xì)介紹了如何使用Python和wxPython構(gòu)建的音頻/視頻提取器應(yīng)用程序,允許用戶從視頻文件中提取音頻,或者從音頻文件中截取特定時(shí)間段,需要的可以參考下
    2024-10-10
  • pandas和spark dataframe互相轉(zhuǎn)換實(shí)例詳解

    pandas和spark dataframe互相轉(zhuǎn)換實(shí)例詳解

    這篇文章主要介紹了pandas和spark dataframe互相轉(zhuǎn)換實(shí)例詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • python的pip有什么用

    python的pip有什么用

    在本篇文章里小編給大家整理的是關(guān)于python的pip作用等相關(guān)內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2020-06-06
  • Python利用Flask動(dòng)態(tài)生成漢字頭像

    Python利用Flask動(dòng)態(tài)生成漢字頭像

    這篇文章主要為大家詳細(xì)介紹了Python如何利用Flask動(dòng)態(tài)生成一個(gè)漢字頭像,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定的幫助,需要的可以參考一下
    2023-01-01
  • Python離線安裝包教程分享

    Python離線安裝包教程分享

    這篇文章主要介紹了Python離線安裝包教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • python工廠方法模式原理與實(shí)現(xiàn)

    python工廠方法模式原理與實(shí)現(xiàn)

    大家好,本篇文章主要講的是python工廠方法模式原理與實(shí)現(xiàn),感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-02-02
  • Python實(shí)現(xiàn)多張圖片合成文字的效果

    Python實(shí)現(xiàn)多張圖片合成文字的效果

    前段時(shí)間看到有人問(wèn)如何使用Python實(shí)現(xiàn)多張圖片組成文字的效果?覺(jué)得還挺有意思,于是嘗試做了一下,剛好趕上端午節(jié),所以打算從網(wǎng)上下載1000張王心凌的照片,組成端午安康的字樣,感興趣的可以了解一下
    2022-06-06
  • Python實(shí)現(xiàn)簡(jiǎn)單猜拳游戲

    Python實(shí)現(xiàn)簡(jiǎn)單猜拳游戲

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)簡(jiǎn)單猜拳游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 解決pycharm下pyuic工具使用的問(wèn)題

    解決pycharm下pyuic工具使用的問(wèn)題

    這篇文章主要介紹了解決pycharm下pyuic工具使用的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-04-04

最新評(píng)論