在列表上迭代比较相似的项并从csv Python添加值

在列表上迭代比较相似的项并从csv Python添加值,python,list,compare,Python,List,Compare,我已从csv语句导入数据,并希望对其进行清理。我想将采购简化为类别并添加值,以便将这些值导出到另一个csv 因此,一个简单的例子是,我有两个描述,一个称为Esso,一个称为BP,在f列中列出了10英镑和15英镑的借方。我想把它浓缩成燃料:25英镑。因此,我将这两列内容拉出来,并创建了一个字典,以将成本和项目汇总在一起。我现在卡住了。。我应该只迭代键以更改为类别,然后再迭代以获得成本,还是应该在创建字典之前完成?如有任何指导,将不胜感激 Item=pd.read_csv("statem

我已从csv语句导入数据,并希望对其进行清理。我想将采购简化为类别并添加值,以便将这些值导出到另一个csv

因此,一个简单的例子是,我有两个描述,一个称为Esso,一个称为BP,在f列中列出了10英镑和15英镑的借方。我想把它浓缩成燃料:25英镑。因此,我将这两列内容拉出来,并创建了一个字典,以将成本和项目汇总在一起。我现在卡住了。。我应该只迭代键以更改为类别,然后再迭代以获得成本,还是应该在创建字典之前完成?如有任何指导,将不胜感激

 Item=pd.read_csv("statement.csv",usecols=['Transaction Description'])
 cost=pd.read_csv("statement.csv",usecols=['Debit Amount'])
 print(Cost)
 
   # Empty dictionary
   purchases = {}
   # Convert to dictionary
   for key in Item:
    for value in cost:
    purchases[key] = value
    cost.remove(value)
    break
   print("Dictionary from lists :\n ",purchases)

如果我能很好地理解你的问题,你想创建一个这样的词典:

{'Esso': '£10', 'BP': '£15', 'Total': '£26'}
i、 例如,组合来自列的数据,而不使用列名。因此,您需要将列作为系列,而不是数据帧。有几种方法可以读取数据。例如,使用
压缩
从CSV文件中读取列作为序列:

item = pd.read_csv("statement.csv", usecols=['Transaction Description'], squeeze=True)
cost = pd.read_csv("statement.csv", usecols=['Debit Amount'], squeeze=True)
或者将整个CSV文件读入数据框,然后分配所需的数据:

df = pd.read_csv("statement.csv")
item = df['Transaction Description']
cost = df['Debit Amount']
现在,您可以使用
zip()
函数同时遍历这两个系列,以获得一个字典,如我的答案开头所示:

purchases = {}
for key, value in zip(item, cost):
    purchases[key] = value

感谢lenka,我还想压缩成本,因此更改名称,例如esso和bp成为燃料(可能在单独的列表或元组中),以便将其导出到另一个csv的燃料成本或类似项下,希望这有意义。我想迭代足够简单,但我希望文章能够访问键和之后的值。你能给我一些建议吗?谢谢