【问题标题】:Iterating over key value pairs and adding values, data cleanse Python迭代键值对并添加值,数据清洗 Python
【发布时间】:2021-06-23 04:59:15
【问题描述】:

我正在使用 python 从 csv 语句中提取数据。我想清理数据并将其传输到另一个电子表格。因此,为了解释像 esso 和 bp 这样的名称,它们被归类为“燃料”并加在一起。重要的是,我想找到这些的总和并将其转移。到目前为止,我已经创建了字典等并进行了迭代,我的挑战是获取值。

df = pd.read_csv("statement.csv")
item = df['Transaction Description']
cost = df['Debit Amount']

purchases = {}

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

所以我最初的目标是将租金、燃料等定义为变量,然后:

for i in key {
    if i = Sanctuary housing rent.value = value
    else
        i = RSS CHANTRY FIELDS etc.....
}

但是我后来发现了理解。但是提供/描述的解决方案似乎更多的是关于多个项目,而不是从特定键中提取数据。我也听说这是一种计算成本很高的方法?因此,我现在正在考虑使用类似于以下内容的想法:

a_key = "c"

values_of_key = [a_dict[a_key] 

来自https://www.kite.com/python/answers/how-to-find-the-values-of-a-key-in-a-list-of-dictionaries-in-python# 我想这可能是一个更简单的方法?

df = pd.read_csv("statement.csv")

item = df['交易描述']

cost = df['借方金额'] credit =df['信用额度']

购买 = {}

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

Water = [purchases ['BRISTOLWESSEXWATER']

print(Water)

我的问题是:这是一个好的 Pythonic 方法吗?我的症结仍然是我想添加的多个值。您还有其他方法可以推荐吗?理想情况下,我希望代码能够快速执行。

非常感谢

【问题讨论】:

    标签: python dictionary iteration


    【解决方案1】:

    将交易描述转换为一组类别的过程可能非常复杂。 我建议为此创建一个函数,以便您可以修改其中的逻辑。

    您的代码可能如下所示:

    import collections
    import pandas as pd
    
    def description_to_category(s):
        # here you have to do a lot of testing and fine-tunning,
        # because this classification process can be quite complicated
        if 'esso' in s or 'bp' in s:
            return 'fuel'
    
        return 'other'
    
    df = pd.read_csv("statement.csv")
    col_description = df['Transaction Description']
    col_cost = df['Debit Amount']
    
    purchases_by_category = collections.defaultdict(0)
    for description, cost in zip(col_description, col_cost):
        category = description_to_category(description)
    
        # add cost; defaultdict will have 0 for new keys
        purchases_by_category[category] += cost
    
    print(purchases_by_category)
    

    【讨论】:

    • 感谢 Ralf,我只是在查看 python 文档,并在玩弄访问键并将单词与预定义列表进行比较的想法。但我不确定我如何才能开始获取值并添加它们..我也猜这可能会很慢?生病了,谢谢,真的很感激
    猜你喜欢
    • 2019-03-15
    • 2020-02-19
    • 1970-01-01
    • 2019-04-02
    • 2021-12-07
    • 2022-12-09
    • 2019-12-04
    • 2011-05-28
    • 1970-01-01
    相关资源
    最近更新 更多