【问题标题】:Accessing the value in a dictionary that is inside a list访问列表内的字典中的值
【发布时间】:2019-02-18 17:40:04
【问题描述】:

我正在使用 Python 3/Pandas 读取 CSV 文件,并且我正在努力访问列表中字典的值。

下图更好地解释了这个问题。我想访问流派的名称(例如示例中的动画)。

如果我尝试做电影['genre'][0],它只返回第一行。

谢谢!

【问题讨论】:

  • 您需要提供minimal reproducible example在问题本身中作为格式化文本。但是对于初学者来说,为什么要在这里使用pandas?它肯定不擅长将字典列表作为元素。
  • 我正在读取一个我想要过滤和清理的大 CSV 文件。这就是为什么我要提取流派,然后将信息保存到一个新的 CSV 文件。
  • 您的 csv 包含与 python list/dict 文字对应的字符串?您选择了错误的序列化方法。无论如何,没有提供minimal reproducible example。请提供minimal reproducible example。你确定你里面真的有list 对象吗?还是它们是str 对象?同样,为什么是熊猫? Pandas 用于处理表格数据。看起来您可能能够按摩您的数据以与 pandas 一起工作,但就目前而言,使用 pandas 没有多大意义。好的建议和寻求调试帮助的问题需要minimal reproducible example
  • 好吧,这不是minimal reproducible example。我不知道还能告诉你什么。

标签: python python-3.x pandas list


【解决方案1】:

如果你想要movies['genres']中的所有名字:

movies.genres.apply(pd.Series).melt().value.apply(pd.Series).name

使用第一个apply,您可以将字典列表转换为列。然后melt 将它们还原,然后再次apply(pd.series) 将字典转换为列。

也许您应该使用pd.read_csv("file.csv", squeeze=True) 来获取系列而不是数据框。

【讨论】:

    【解决方案2】:
    for gener in movies['genres']:
        print(gener)
        for entry in gener:
            print(entry)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-13
      相关资源
      最近更新 更多