下面是关于"python 根据csv表头、列号读取数据的实现"的完整攻略。
1. 读取csv文件
Python中可用csv库来读取csv文件,例如:
import csv
with open('data.csv') as csv_file:
csv_reader = csv.reader(csv_file)
for row in csv_reader:
print(row)
以上代码中,我们使用with打开csv文件,并将其赋值给csv_file变量。然后使用csv库创建reader对象csv_reader,并遍历csv_reader输出每一行的数据。这段代码可读取整个csv文件中的数据。
2. 根据表头读取数据
要按列读取数据,可以使用csv库的DictReader类,该类将文件中的每一行表示为一个字典,其中包含每个列的键和值,其中键是表头的名称。例如,假设我们有一个包含以下数据的csv文件:
姓名 | 年龄 | 地点 |
---|---|---|
Lucy | 18 | Paris |
John | 26 | London |
Mike | 32 | New York |
我们可以用以下代码按照姓名/年龄/地点来读取csv文件:
import csv
with open('data.csv') as csv_file:
csv_reader = csv.DictReader(csv_file)
for row in csv_reader:
print(row['姓名'], row['年龄'], row['地点'])
以上代码中,我们使用了DictReader类,将csv文件中的每一行表示为一个字典row,row的键为csv文件表头中的列名,例如row['姓名']就对应csv文件表头中的姓名列。通过这种方式,我们可以灵活地读取csv文件的任何一列数据。
3. 根据列号读取数据
如果我们想通过列号而不是表头来读取数据,我们需要先在代码中获取表头,然后查找列号。例如,以下代码演示如何通过列号1读取csv文件中的数据:
import csv
with open('data.csv') as csv_file:
csv_reader = csv.reader(csv_file)
# get header
header = next(csv_reader)
# read data by column index
for row in csv_reader:
print(row[1])
以上代码中,我们使用csv库的reader类读取csv文件中的数据。我们在第4行调用了next(csv_reader)
方法,以获取csv文件的第一行,即数据表头。然后我们使用for循环来遍历csv_reader数据,并使用行索引读取指定列的数据。在这种情况下,我们将读取第二列,因为它的列号是1。我们可以灵活地改变列号,以查找任何需要的列。
示例说明
以下是两个实例说明:
示例1
假设我们有一个csv文件,包含以下数据:
名称 | 性别 | 年龄 |
---|---|---|
张三 | 男 | 18 |
李四 | 男 | 25 |
小红 | 女 | 19 |
小兰 | 女 | 22 |
现在我们想读取性别为男的人的年龄信息。可通过以下代码实现:
import csv
with open('data.csv') as csv_file:
csv_reader = csv.DictReader(csv_file)
for row in csv_reader:
if row['性别'] == '男':
print(row['年龄'])
这样,程序将只输出姓名为张三和李四的人的年龄信息,因为他们的性别都是男。输出如下所示:
18
25
示例2
现在假设我们想读取csv文件的前两列数据。可通过以下代码实现:
import csv
with open('data.csv') as csv_file:
csv_reader = csv.reader(csv_file)
# get header
header = next(csv_reader)
# read first two columns of data
for row in csv_reader:
print(row[0], row[1])
输出如下所示:
名称 性别
张三 男
李四 男
小红 女
小兰 女
以上就是完整的"python 根据csv表头、列号读取数据的实现"攻略。希望能对您有所帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python 根据csv表头、列号读取数据的实现 - Python技术站