【问题标题】:run a number of functions over data in a dictionary对字典中的数据运行许多函数
【发布时间】:2020-08-13 15:02:23
【问题描述】:

我想编写一个代码来获取多个 .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: 'DataFrame' objects are mutable, thus they cannot be hashed

如果我将最后一部分更改为,它确实有效

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

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

【问题讨论】:

    标签: python-3.x loops dictionary


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-31
      • 1970-01-01
      相关资源
      最近更新 更多