Python 我想打印出行[';A';,';e';]下的元素,但结果不是我想要的,我不想要;我无法理解我编写的代码的结果

Python 我想打印出行[';A';,';e';]下的元素,但结果不是我想要的,我不想要;我无法理解我编写的代码的结果,python,csv,Python,Csv,我制作的一个小TEST.csv的图像: 任务:我想打印出['A','e'行中的元素 结果应该是: 21, 22, 23 我的代码: with open('TEST.csv') as f: reader = csv.DictReader(f) for k in reader: print(k) 但我得到的结果是: OrderedDict([('A', 'e')]) OrderedDict([('A', '21')]) OrderedDict([('A', '

我制作的一个小TEST.csv的图像:

任务:我想打印出['A','e'行中的元素

结果应该是:

21, 22, 23

我的代码:

with open('TEST.csv') as f:
    reader = csv.DictReader(f)
    for k in reader:
        print(k)
但我得到的结果是:

OrderedDict([('A', 'e')])
OrderedDict([('A', '21')])
OrderedDict([('A', '22')])
OrderedDict([('A', '23')])

有很多方法可以做到这一点,尽管熊猫可以让它变得更容易。比如说,

import pandas as pd
df = pd.read_csv('TEST.csv', header=[0,1])
df可能类似于:

   A
   a  b   c   d   e
0  1  6  11  16  21
1  2  7  12  17  22
2  3  8  13  18  23
然后呢,

df['A']['e'].tolist() # would return a list like
[21L, 22L, 23L]
如果不希望整数类型变长,请执行以下操作

map(int, df['A']['e'].tolist())
为什么不用熊猫

CSV

a   b   c   d   e
1   6   11   16   21
2   7   12   17   22
3   8   13   18   23

OUT

21 22 23
[21, 22, 23]
重要的是要获得准确的分隔符

下面3.7的映射为

print (list(map(int, df.e.tolist())))
OUT

21 22 23
[21, 22, 23]

请以文本形式发布您的csv文件。问题是您的标题列与条目重复,因此只考虑最后一列(我想会覆盖以前的列)。除非你跳过第一行(csv模块怎么能猜出你的文件有两个标题行),否则你不能将这样的文件输入字典。谢谢你的快速回复@Jean François Fabre♦ 我制作这个.csv是因为我看到其他一些.csv使用这个方法对数据进行排序。我觉得这很奇怪,所以我做了一个小的,并试图运行自己。数据提供程序提供的用于分析数据的代码有错误。我以前不知道怎么问这个问题,但我想现在我知道怎么问了。再次感谢!