在Python中的csv文件中比较一列到另一列

时间:2011-08-22 20:13:25

标签: python

您好我想将csv文件的列a与同一csv文件的b列进行比较,如下所示:

column a:
8,67,55,32,44,70,9,10,79,21

column b:
22, 45, 6, 22, 3, 22, 6, 7,22,5

我希望用户输入一个数字,让我们说:'8'inin rawinput命令。然后在其他库(b)中搜索对应于8的数字。这应该给出22.一旦获得22,我希望列出/显示对应于列b中的数量22的所有其他数量的列(a)。请帮助我解决这个问题?

2 个答案:

答案 0 :(得分:1)

我会为输入数据创建一个字典(让我们称之为dictA),其中键是列数字和值列b。

我还会创建第二个字典(dictB),其中键是列b编号,值是列a中相应值的列表。

因此,对于您给出的示例,用户将输入8,将在dictA中查找,并且将找到22。 然后在dictB中查找22,在dictB中22的值是[8,32,79]。但是如果你认为合适,请返回该列表。

这都假设列a中的值是唯一的。

答案 1 :(得分:1)

一些可能对您有用的函数(从python官方文档中选择):

  

raw_input([prompt])如果出现提示参数,则写入   到没有尾随换行符的标准输出。然后该功能读取   输入行,将其转换为字符串(剥离尾随   换行),并返回。

     

str.split([sep [,maxsplit]])返回单词列表   string,使用sep作为分隔符字符串。

     

list.index(x)在第一个项目列表中返回索引   值是x。如果没有这样的项目,则会出错。

此外,如果你正在对你的数值做任何其他事情,那么输入它们可能是有用的:

  

int([x [,base]])将字符串或数字转换为普通整数。如果   参数是一个字符串,它必须包含一个可能带符号的十进制数   数字可表示为Python整数,可能嵌入   空格。

您也可以使用列表理解,例如:

>>> my_str_vals = ['20', '42', '14.2', '808.0']
>>> my_floats = [float(val) for val in my_str_vals]
>>> my_str_vals[2]
'14.2'
>>> my_floats[2]
14.2