繁体   English   中英

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

[英]compare one column to another in csv file in 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'使用rawinput命令。 然后在其他库(b)中搜索对应于8的数字。 这应该给出22.一旦获得22,我希望列出/显示对应于列b中的数量22的所有其他数量的列(a)。 请帮助我解决这个问题?

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

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

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

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

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

raw_input([prompt])如果存在prompt参数,则将其写入标准输出而不带尾随换行符。 然后,该函数从输入中读取一行,将其转换为字符串(剥离尾部换行符),然后返回该行。

str.split([sep [,maxsplit]])使用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM