CSV文件

CSV代表“逗号分隔值”,它被定义为一种使用特定结构来排列表格数据的简单文件格式。它以纯文本形式存储表格数据,如电子表格或数据库,并具有用于数据交换的通用格式。CSV文件打开为Excel表格,行和列数据定义了标准格式。

读取CSV文件

Python提供了各种函数来读取CSV文件。以下是其中的一些讨论。要查看示例,我们必须有一个CSV文件。让我们考虑一个名为python.csv的示例数据文件,内容如下:

名字年龄城市
Ram27孟买
Bheem29浦那
Sita23德里

1. 使用csv.reader()函数

在Python中,使用csv.reader()模块来读取CSV文件。它将文件的每一行作为一个列的列表。

示例:

代码

import csv  
def main():  
    # To Open the CSV file  
    with open(' python.csv ', newline = '') as csv_file:  
        csv_read = csv.reader( csv_file, delimiter = ',')  
  
        # To Read and display each row  
        for row in csv_read:  
            print(row)  
if __name__ == '__main__':  
    main()  

输出:

[ 'Name', 'Age', 'City' ]
[ 'Ram', '27', 'Mumbai' ]
[ 'Bheem', '29', 'Pune' ]
[ 'Sita', '23', 'Delhi' ]

在上面的代码中,我们使用open()*函数打开了'python.csv'文件。我们使用*csv.reader()*函数来读取文件,它返回一个可迭代的reader对象。**reader**对象包含了数据,我们使用*for循环进行迭代,以打印每一行的内容。

2. 将CSV读入字典

我们还可以使用DictReader()函数将CSV文件直接读入字典,而不是处理一组单独的字符串元素。

示例:

代码

import csv  
with open('python.csv', mode='r') as csv_file:  
    csv_reader = csv.DictReader(csv_file)  
    line_count = 0  
  
    for row in csv_reader:  
        if line_count == 0:  
            print( f'The column names are as follows : {", ".join(row)}' )  
            line_count += 1  
  
        print(  f'\t{row[ " Name " ]} lives in {row[" City "]} department and is {row[" Age "]} years old. ')  
        line_count += 1  
  
    print(f'Processed {line_count} lines.')   

输出:

The column names are as follows : Name, Age, City
    Ram lives in Mumbai department and is 27 years old.
    Bheem lives in Pune department and is 29 years old.
    Sita lives in Delhi department and is 23 years old.
Processed 4 lines.    

使用Pandas读取CSV文件

3. 使用Pandas读取CSV文件

Pandas是一种建立在NumPy库之上的开源库,它提供快速的分析、数据清理和数据准备功能。将CSV文件读取到Pandas DataFrame中非常快速和直接。我们不需要编写大量代码来在Pandas中打开、分析和读取CSV文件,它将数据存储在DataFrame中。在这里,我们将尝试读取一个稍微复杂一些的文件,称为hrdata.csv,其中包含公司员工的数据。

姓名,入职日期,工资,剩余假期

John Idle,08/15/14,50000.00,10

Smith Gilliam,04/07/15,65000.00,8

Parker Chapman,02/21/14,45000.00,10

Jones Palin,10/14/13,70000.00,3

Terry Gilliam,07/22/14,48000.00,7

Michael Palin,06/28/13,66000.00,8

示例:

代码

import pandas as pd  
# Read the CSV file into a DataFrame  
df = pd.read_csv(' hrdata.csv ')  
  
# Print the DataFrame  
print(df)  

在上面的代码中,只需要三行代码就足够了,其中只有一行实际上在执行工作,即pandas.read_csv()

输出:

         Name                Hire Date     Salary      Leaves Remaining
0     John Idle              03/15/14      50000.0       10
1     Smith Gilliam          06/01/15      65000.0       8
2     Parker Chapman         05/12/14      45000.0       10
3     Jones Palin            11/01/13      70000.0       3
4     Terry Gilliam          08/12/14      48000.0       7
5     Michael Palin          05/23/13      66000.0       8

Python CSV模块函数

CSV模块的工作用于处理CSV文件以进行读写,并从指定列获取数据。有不同类型的CSV函数,如下所示:

csv.reader从CSV文件中读取数据
csv.writer将数据写入CSV文件
csv.field_size_limit返回解析器允许的当前最大字段大小
csv.get_dialect返回与名称关联的方言
csv.list_dialects返回所有已注册方言的名称
csv.register_dialect将方言与名称关联。名称必须是字符串或Unicode对象
csv.unregister_dialect从方言注册表中删除与名称关联的方言。如果名称不是注册的方言名称,则会引发错误
csv.QUOTE_ALL指示写入对象引用所有字段
csv.QUOTE_MINIMAL指示写入对象仅引用包含特殊字符(如引号、分隔符等)的字段
csv.QUOTE_NONNUMERIC指示写入对象引用所有非数字字段
csv.QUOTE_NONE指示写入对象永不引用字段

结论

在处理CSV记录时,确保文档格式正确,并导入适当的库是很重要的。您可能需要处理潜在问题,如缺失值、不一致的数据类型和特殊字符。了解CSV文件的格式,包括标题和数据部分,对于有效的数据处理至关重要。

标签: Tkinter教程, Tkinter安装, Tkinter库, Tkinter入门, Tkinter学习, Tkinter入门教程, Tkinter, Tkinter进阶, Tkinter指南, Tkinter学习指南, Tkinter进阶教程, Tkinter编程