CSV(逗号分隔值)是一种常见的数据存储格式,它以纯文本形式存储表格数据(数字和文本),Python提供了多种方法来读取CSV文件,本文将详细介绍如何使用Python读取CSV文件。
1、使用内置的csv模块
Python的csv模块是处理CSV文件的标准库,以下是一个简单的示例,展示了如何使用csv模块读取CSV文件:
import csv 打开CSV文件 with open('example.csv', mode='r', encoding='utf8') as csvfile: # 创建一个csv阅读器对象 csv_reader = csv.reader(csvfile, delimiter=',') # 遍历CSV文件的每一行 for row in csv_reader: print(row)
在这个示例中,我们首先导入了csv模块,我们使用open()
函数以读取模式(’r’)打开一个名为’example.csv’的CSV文件,我们还指定了文件的编码方式为’utf8’,以确保正确处理包含非ASCII字符的CSV文件。
接下来,我们使用csv.reader()
函数创建一个csv阅读器对象,这个函数的第一个参数是已打开的文件对象,第二个参数是用于分隔CSV文件中的值的分隔符,在这个例子中,我们使用逗号作为分隔符,因此传递了字符串’delimiter=’,”。
我们使用for
循环遍历csv阅读器对象中的每一行,每一行都是一个列表,其中包含了CSV文件中的每个值,我们可以对这些值进行进一步处理,例如打印它们或将其存储在变量中。
2、使用pandas库
pandas是一个功能强大的数据处理库,它也提供了用于读取CSV文件的功能,以下是一个简单的示例,展示了如何使用pandas读取CSV文件:
import pandas as pd 读取CSV文件为DataFrame对象 data = pd.read_csv('example.csv') 打印DataFrame的内容 print(data)
在这个示例中,我们首先导入了pandas库,并将其别名为pd,我们使用pd.read_csv()
函数读取名为’example.csv’的CSV文件,并将结果存储在一个名为data的DataFrame对象中,DataFrame是一个二维表格数据结构,可以方便地处理和分析数据。
我们使用print()
函数打印DataFrame的内容,这将显示CSV文件中的所有行和列。
3、处理带有标题行的CSV文件
如果CSV文件的第一行是标题行,我们可以使用上述方法读取CSV文件,并使用标题行来访问数据,以下是一个示例:
import csv import pandas as pd 打开CSV文件 with open('example.csv', mode='r', encoding='utf8') as csvfile: # 创建一个csv阅读器对象 csv_reader = csv.reader(csvfile, delimiter=',') # 跳过标题行 next(csv_reader) # 遍历CSV文件的每一行 for row in csv_reader: print(row)
在这个示例中,我们在调用next(csv_reader)
之前添加了一行代码,以跳过标题行,这样,我们就可以从第二行开始遍历CSV文件的每一行,其他部分与之前的示例相同。
4、处理带有多个分隔符的CSV文件
CSV文件中的值可能由多个分隔符分隔,在这种情况下,我们需要指定一个更复杂的分隔符解析规则,以下是一个示例:
import csv import pandas as pd from io import StringIO from collections import defaultdict from itertools import zip_longest, chain from functools import partial, cmp_to_key, reduce, lru_cache, total_ordering, wraps from operator import itemgetter, attrgetter, methodcaller, add, sub, mul, truediv, mod, floordiv, pow, negate, pos, abs, max, min, inv, nanprod, cumprod, all, any, count, first, index, isin, clip, reversed, sorted, takewhile, dropwhile, accumulate, groupby, filterfalse, map, zip_longest, chain, starmap, reduce, lru_cache, total_ordering, wraps, itemgetter, attrgetter, methodcaller, add, sub, mul, truediv, mod, floordiv, pow, negate, pos, abs, max, min, inv, nanprod, cumprod, all
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/455157.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复