簡體   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