python-3.x - 对字典中的数据运行许多函数
问题描述
我想编写一个获取多个 .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]
因为val
它是一个 DataFrame。
您是要使用字典的值还是想要键?或者 DataFrame 的某些元素?
如果你想要键而不是值,你可以简单地做for val in d:
。
推荐阅读
- c# - 为 Android 开发时,如何在 Unity 中动态更改网格布局组组件的单元格大小?
- c++ - 从带有参数的 C++ 程序调用 shell 脚本
- angular - 如何在 ngFor Angular 5 中过滤今天的日期顺序?
- powershell - 标题名称和跳过第一行
- json - 如何为jq解析bash变量
- html - 在一行中设置 HTML 元素?(输入,p)
- android - 在服务内部创建的工作线程
- audio - 使用 pwm (imx6ul) 设备树问题生成音频
- javascript - 混淆为 [(ngModel)] 不属于 Angular4 中的任何指令类别
- jquery - jQuery延迟5秒