Python 读取 csv 单个特定单元格

Python read csv single specific cell

我试图只读取一个单元格,以便引入日期以在其他地方使用。 使用 pandas 如果我尝试这样做,我会收到一个错误,通常只是无法读取数据帧,因为它需要一个可行的数据帧,而不是远低于初始行的实际可转换数据帧之前的单个单元格值。我怎样才能得到单元格,即 [A2]

CSV example

是的,pandas 不太擅长格式不一致的文件(比如列数不同)。为此,我建议您使用 csv 标准库。

下面的代码应该会给你想要的值。

import csv

row = 2; col = 1  # A2 = (2,1) cell
with open("yourfile.csv") as f:
    reader = csv.reader(f)
    for i in range(row):
        row = next(reader)
    value = row[col-1]  # because python index starts at zero
print(value)

演示(使用字符串而不是文件):

import csv

row = 2; col = 1  # A2 = (2,1) cell
input_str = ["a,b", "c,d,e", "f,g,h,i"]

reader = csv.reader(input_str)
for i in range(row):
    row = next(reader)
value = row[col-1]  # because python index starts at zero
print(value)

为了能够像访问二维对象一样访问 csv,您需要先将其转换为二维 python List

import csv

with open("imdb.csv") as f:
    csv_as_list = list(csv.reader(f, delimiter=","))
    print(csv_as_list[3][2])

访问元素的格式是csv_as_list[row_index][column_index]