微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

迭代列表比较类似的项目并从 csv Python 添加值

如何解决迭代列表比较类似的项目并从 csv Python 添加值

我已经从语句 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'}

即,合并列中的数据,不包含列名。因此,您需要将列作为系列而不是数据框。有几种方法可以读取数据。例如,使用 squeeze 将 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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。