首页 > 解决方案 > 对字典中的数据运行许多函数

问题描述

我想编写一个获取多个 .txt 和 .ASC 数据的代码。所有这些都必须通过一些功能来运行。所以我认为拥有一个自动执行的脚本会很棒。

.txt 包含的数据(产品、编号、颜色、尺寸)比 .ASC(产品、编号、尺寸)多。所以我必须调整每个人的头。

所以,这是我认为我的脚本可能看起来的第一部分。

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import os
import new_methods as nem
import sys
sys.path.append("../../src/")

path_data ="C:///Users///"

fids = [file for file in os.listdir(path_data)]

d = dict()
for i in fids:
    if i[-1]== 't':
        d.update({i : nem.df(path_data+i, header_lines=1)})
    elif i[-1] == 'C':
        d.update({i : nem.df(path_data+i, header_lines=0)})

for val in d.values():
    txt_fid=d[val]
    dh_txt=nem.sort(txt_fid)

但它给出了一个 Typeerror

TypeError: 'DataFrame' objects are mutable, thus they cannot be hashed

如果我将最后一部分更改为

txt_fid=d['specific.txt']
dh_txt=nem.sort(txt_fid)

但是像这样我必须为每个 txt 表手动更改。

标签: python-3.xloopsdictionary

解决方案


就像错误说你不能在字典中拥有一个可变的键(例如 DataFrame),当你这样做时你正在这样做,d[val]因为val它是一个 DataFrame。

您是要使用字典的值还是想要键?或者 DataFrame 的某些元素?

如果你想要键而不是值,你可以简单地做for val in d:


推荐阅读