【问题标题】:Trouble analyzing pickled data in Python 3在 Python 3 中分析腌制数据时遇到问题
【发布时间】:2018-07-08 21:13:03
【问题描述】:

我有一个要分析的数据集(由于它的大小,我不能把它放在这里,但我可以描述它)它是一个腌制形式的字典,看起来像这样:

姓名:(薪水:x,奖金:y,电子邮件地址:z 等) 每个名称有 21 个属性和 21 个值(有些是数字,有些是布尔值,有些是字符串)

我使用 pandas 将数据存储在数据框中

df = pd.read_pickle('data.pkl')

但与我之前操作过的 pandas 数据帧不同,我似乎无法遍历这个数据帧。 head() 函数不起作用,keys() 起作用,但它只显示文件中的名称。通过指定名称获取其他数据也可以(例如打印df['john smith'])。我尝试这样做以访问其他数据而无需手动写入所有名称,但它不起作用

names = df.keys()
for i in range(len(df.keys())):
    name = names[i]
    print(df[name])

我收到错误消息说“dict_keys”对象不支持索引。我猜字典不能以与数组或列表相同的方式遍历。任何帮助将不胜感激。

【问题讨论】:

  • “不起作用”是 SO 的禁忌。您必须针对每个具体案例提供准确完整的错误消息以及所有相关代码。
  • print(df) 的输出是什么?
  • @nijm 它是一个庞大的数据集,我可以为一个案例提供示例:'METTS MARK': {'salary': 365788, 'to_messages': 807, 'deferral_payments': 'NaN', . ...} 有 100 多个这样的名字
  • @DyZ 使用 pandas 函数,它说'dict object has no attribute 'foo''。
  • 请点击edit将所需信息添加到您的问题正文中。

标签: python pandas pickle


【解决方案1】:

df.keys() 返回一个不支持索引的迭代。如果您想遍历字典,只需遍历键并适当地使用它们索引字典:

for key in df.keys():
    print(df[key])

【讨论】:

  • 我很乐意为您提供帮助。如果这解决了您的问题,请单击旁边的复选标记将其标记为已接受。谢谢:)。
猜你喜欢
  • 1970-01-01
  • 2011-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多