如何在python中读取csv文件的特定行?

用户名

我已经疯狂地搜索,试图专门查找如何读取csv文件中的行。

我需要读取1000行中的随机行,每个行都有3列。第一列有一封电子邮件。我需要放入随机电子邮件,并取出第2列和第3列。(Python 2.7,csv文件)

例:

Name Date  Color
Ray  May   Gray
Alex Apr   Green
Ann  Jun   Blue
Kev  Mar   Gold
Rob  May   Black

我需要[Ann],而不是第1列的第3行。这是一个CSV文件,具有1000多个名称。我必须输入她的名字并输出她的整行。


我尝试过的

from collections import namedtuple
Entry = namedtuple('Entry', 'Name, Date, Color')
file_location = "C:/Users/abriman/Desktop/Book.csv"
ss_dict = {}
spreadsheet = file_location = "C:/Users/abriman/Desktop/Book.csv"
for row in spreadsheet:
    entry = Entry(*tuple(row))
    ss_dict['Ann']

我的错误读

Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
TypeError: __new__() takes exactly 4 arguments (2 given)

我也尝试了其他方法,但收效甚微。我是python的初学者。

nefo_x

解决问题的方法可能是简单的字典理解:

>>> Entry = namedtuple('Entry', 'Name, Date, Color')
>>> [l for l in open('t.tsv', 'r')]
<<<
['Name Date  Color\n',
 'Ray  May   Gray\n',
 'Alex Apr   Green\n',
 'Ann  Jun   Blue\n',
 'Kev  Mar   Gold\n',
 'Rob  May   Black\n']
>>> [l.split() for l in open('t.tsv', 'r')]
<<<
[['Name', 'Date', 'Color'],
 ['Ray', 'May', 'Gray'],
 ['Alex', 'Apr', 'Green'],
 ['Ann', 'Jun', 'Blue'],
 ['Kev', 'Mar', 'Gold'],
 ['Rob', 'May', 'Black']]
>>> [Entry(*l.split()) for l in open('t.tsv', 'r')]
<<<
[Entry(Name='Name', Date='Date', Color='Color'),
 Entry(Name='Ray', Date='May', Color='Gray'),
 Entry(Name='Alex', Date='Apr', Color='Green'),
 Entry(Name='Ann', Date='Jun', Color='Blue'),
 Entry(Name='Kev', Date='Mar', Color='Gold'),
 Entry(Name='Rob', Date='May', Color='Black')]    >>> {'fooo':e for e in Entry(*l.split()) for l in open('t.tsv', 'r')}
>>> {e.Name:e for e in list(Entry(*l.split()) for l in open('t.tsv', 'r'))}
<<<
{'Alex': Entry(Name='Alex', Date='Apr', Color='Green'),
 'Ann': Entry(Name='Ann', Date='Jun', Color='Blue'),
 'Kev': Entry(Name='Kev', Date='Mar', Color='Gold'),
 'Name': Entry(Name='Name', Date='Date', Color='Color'),
 'Ray': Entry(Name='Ray', Date='May', Color='Gray'),
 'Rob': Entry(Name='Rob', Date='May', Color='Black')}

我认为您正在考虑将第一行作为标题名称阅读。Python具有DictReader- https: //docs.python.org/2/library/csv.html#csv.DictReader

>>> import csv
>>> for line in csv.DictReader(open('t.tsv')): print line # don't forget to make your file coma-separated. 
{'Date': 'May', 'Color': 'Gray', 'Name': 'Ray'}
{'Date': 'Apr', 'Color': 'Green', 'Name': 'Alex'}
{'Date': 'Jun', 'Color': 'Blue', 'Name': 'Ann'}
{'Date': 'Mar', 'Color': 'Gold', 'Name': 'Kev'}
{'Date': 'May', 'Color': 'Black', 'Name': 'Rob'}

或具有字典理解能力:

>>> { line['Name']: line for line in csv.DictReader(open('t.tsv')) }
<<<
{'Alex': {'Color': 'Green', 'Date': 'Apr', 'Name': 'Alex'},
 'Ann': {'Color': 'Blue', 'Date': 'Jun', 'Name': 'Ann'},
 'Kev': {'Color': 'Gold', 'Date': 'Mar', 'Name': 'Kev'},
 'Ray': {'Color': 'Gray', 'Date': 'May', 'Name': 'Ray'},
 'Rob': {'Color': 'Black', 'Date': 'May', 'Name': 'Rob'}}
>>> rows_by_name = { line['Name']: line for line in csv.DictReader(open('t.tsv')) }
>>> rows_by_name['Ann']
<<< {'Color': 'Blue', 'Date': 'Jun', 'Name': 'Ann'}

如果您想要随机样本-我建议您首先将一行读入列表,然后通过randbom模块进行选择。或者...让我们用Entry来做:

>>> rows = list(Entry(*l.split()) for l in open('t.tsv', 'r'))
>>> import random
>>> random.sample(rows, 1)
<<< [Entry(Name='Ray', Date='May', Color='Gray')]
>>> random.sample(rows, 1)
<<< [Entry(Name='Alex', Date='Apr', Color='Green')]
>>> random.sample(rows, 1)
<<< [Entry(Name='Name', Date='Date', Color='Color')]
>>> random.sample(rows, 1)
<<< [Entry(Name='Alex', Date='Apr', Color='Green')]
>>> random.sample(rows, 1)
<<< [Entry(Name='Alex', Date='Apr', Color='Green')]
>>> random.sample(rows, 1)
<<< [Entry(Name='Alex', Date='Apr', Color='Green')]
>>> random.sample(rows, 3)
<<<
[Entry(Name='Ray', Date='May', Color='Gray'),
 Entry(Name='Kev', Date='Mar', Color='Gold'),
 Entry(Name='Ann', Date='Jun', Color='Blue')]
>>> random.sample(rows, 3)
<<<
[Entry(Name='Ann', Date='Jun', Color='Blue'),
 Entry(Name='Rob', Date='May', Color='Black'),
 Entry(Name='Name', Date='Date', Color='Color')]
>>> random.sample(rows, 3)
<<<
[Entry(Name='Rob', Date='May', Color='Black'),
 Entry(Name='Ann', Date='Jun', Color='Blue'),
 Entry(Name='Kev', Date='Mar', Color='Gold')]

但请注意,您可能会过多地加载内存。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

读取csv文件中的特定行,python

来自分类Dev

如何在python中使用iterrows从特定行读取csv文件?

来自分类Dev

如何从 csv 文件中读取特定行的数据?

来自分类Dev

如何使用python从csv文件中仅读取特定范围的行?

来自分类Dev

如何读取大型csv文件的特定行

来自分类Dev

如何在 Python 中读取和写入 CSV 文件

来自分类Dev

如何在python中读取csv文件并绘制混淆矩阵

来自分类Dev

如何在python中使用pandas从csv文件中读取?

来自分类Dev

Python程序如何加载和读取文件中的特定行?

来自分类Dev

如何从python中的.txt文件读取特定行?

来自分类Dev

读取直到Python中的CSV特定行

来自分类Dev

如何在python中更好地读取文件行

来自分类Dev

如何在Javascript中读取CSV文件

来自分类Dev

如何读取文件中的特定行?

来自分类Dev

如何从大文件中读取特定行?

来自分类Dev

读取文件,直到python中的特定行

来自分类Dev

如何在线读取文件并返回特定行以再次读取

来自分类Dev

从CSV文件读取特定行

来自分类Dev

如何使用python从csv文件中删除特定行

来自分类Dev

(Python)如何写入csv文件中的特定行?

来自分类Dev

如何在Python CSV模块中查找特定行

来自分类Dev

如何在Python CSV模块中查找特定的行

来自分类Dev

如何在批处理中读取CSV文件特定列中的值?

来自分类Dev

如何在批处理中读取CSV文件特定列中的值?

来自分类Dev

如何在python中读取特定行并将数据打印到文本文件或控制台窗口?

来自分类Dev

如何在python中读取特定行并将数据打印到文本文件或控制台窗口?

来自分类Dev

如何在Python中从.txt文件加载特定行?

来自分类Dev

如何从python中的特定行读取?

来自分类Dev

从c ++中的csv文件读取整数的特定行

Related 相关文章

  1. 1

    读取csv文件中的特定行,python

  2. 2

    如何在python中使用iterrows从特定行读取csv文件?

  3. 3

    如何从 csv 文件中读取特定行的数据?

  4. 4

    如何使用python从csv文件中仅读取特定范围的行?

  5. 5

    如何读取大型csv文件的特定行

  6. 6

    如何在 Python 中读取和写入 CSV 文件

  7. 7

    如何在python中读取csv文件并绘制混淆矩阵

  8. 8

    如何在python中使用pandas从csv文件中读取?

  9. 9

    Python程序如何加载和读取文件中的特定行?

  10. 10

    如何从python中的.txt文件读取特定行?

  11. 11

    读取直到Python中的CSV特定行

  12. 12

    如何在python中更好地读取文件行

  13. 13

    如何在Javascript中读取CSV文件

  14. 14

    如何读取文件中的特定行?

  15. 15

    如何从大文件中读取特定行?

  16. 16

    读取文件,直到python中的特定行

  17. 17

    如何在线读取文件并返回特定行以再次读取

  18. 18

    从CSV文件读取特定行

  19. 19

    如何使用python从csv文件中删除特定行

  20. 20

    (Python)如何写入csv文件中的特定行?

  21. 21

    如何在Python CSV模块中查找特定行

  22. 22

    如何在Python CSV模块中查找特定的行

  23. 23

    如何在批处理中读取CSV文件特定列中的值?

  24. 24

    如何在批处理中读取CSV文件特定列中的值?

  25. 25

    如何在python中读取特定行并将数据打印到文本文件或控制台窗口?

  26. 26

    如何在python中读取特定行并将数据打印到文本文件或控制台窗口?

  27. 27

    如何在Python中从.txt文件加载特定行?

  28. 28

    如何从python中的特定行读取?

  29. 29

    从c ++中的csv文件读取整数的特定行

热门标签

归档