Python读取csv文件

Python读取csv文件

CSV文件

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

读取CSV文件

Python提供了各种函数来读取csv文件。下面讨论其中的一些。为了看到示例,我们必须有一个csv文件。让我们考虑一个python.csv文件中的示例数据。

Name Age City
Ram 27 Mumbai
Bheem 29 Pune
Sita 23 Delhi

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中是快速且直接的操作。我们无需编写很多代码来打开、分析和读取csv文件,Pandas会将数据存储在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文件的结构,包括标题和数据部分,对于有效地处理数据至关重要。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程