📅  最后修改于: 2020-10-28 00:57:42             🧑  作者: Mango
csv代表“逗号分隔值”,它定义为一种简单的文件格式,使用特定的结构来排列表格数据。它以纯文本格式存储表格数据,例如电子表格或数据库,并具有通用的数据交换格式。一个csv文件将打开到excel工作表中,并且行和列数据定义了标准格式。
CSV模块工作用于处理CSV文件以从指定列读取/写入和获取数据。 CSV函数有不同类型,如下所示:
Python提供了各种功能来读取csv文件。我们将介绍几种阅读函数的方法。
在Python,csv.reader()模块用于读取csv文件。它占用文件的每一行,并列出所有列。
我们已经获取了一个名为Python.txt的txt文件,该文件具有默认的分隔符comma(,),其中包含以下数据:
name,department,birthday month
Parker,Accounting,November
Smith,IT,October
例
import csv
with open('python.csv') as csv_file:
csv_reader = csv.reader(csv_file, delimiter=',')
line_count = 0
for row in csv_reader:
if line_count == 0:
print(f'Column names are {", ".join(row)}')
line_count += 1
输出:
Column names are name, department, birthday month
Parker works in the Accounting department, and was born in November.
Smith works in the IT department, and was born in October.
Processed 3 lines.
在上面的代码中,我们使用open()函数打开了“ Python .csv”。我们使用csv.reader()函数读取文件,该文件返回一个可迭代的reader对象。 reader对象包含数据,我们使用for循环进行迭代以print每一行的内容
我们还可以使用DictReader()函数将csv文件直接读入字典,而不用处理单个字符串元素的列表。
同样,我们的输入文件Python.txt如下:
name,department,birthday month
Parker,Accounting,November
Smith,IT,October
例
import csv
with open('python.txt', 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"]} works in the {row["department"]} department, and was born in {row["birthday month"]}.')
line_count += 1
print(f'Processed {line_count} lines.')
输出:
The Column names are as follows name, department, birthday month
Parker works in the Accounting department, and was born in November.
Smith works in the IT department, and was born in October.
Processed 3 lines.
Pandas被定义为在NumPy库顶部构建的开源库。它为用户提供快速的分析,数据清理和数据准备。
将csv文件读入pandas DataFrame是快速而直接的。我们不需要编写足够的代码行即可在熊猫中打开,分析和读取csv文件,并将其存储在DataFrame中。
在这里,我们正在读取一个稍微复杂的文件hrdata.csv,其中包含公司员工的数据。
Name,Hire Date,Salary,Leaves Remaining
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
df = pandas.read_csv('hrdata.csv')
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