如何解决对字典中的数据运行许多功能
我想编写一个获取多个.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表手动进行更改。
解决方法
像错误一样,您不能在可变字典(例如DataFrame)中拥有键,因为d[val]
是一个DataFrame,所以您在进行val
时要这么做。
您是要使用字典的值,还是要键?还是DataFrame的某些元素?
如果您想要键而不是值,则只需执行for val in d:
即可。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。