【问题标题】:Python Row Iteration - row values = dicationaryPython行迭代 - 行值=字典
【发布时间】:2018-11-07 01:22:57
【问题描述】:

我的数据框中有一列,其中每一行值都是一个字典。我试图遍历每一行,每次只提取字典的某些值。

这是sample dataframe的截图。

在此示例中,对于每一行,我们如何从总计列中提取“访问次数”?

这就是我想出的……这是最干净的方法吗?

for row in train.head().itertuples():
      print(ast.literal_eval(row.totals)['visits'])

【问题讨论】:

  • 搜索 json_normalize。

标签: python python-3.x pandas loops dataframe


【解决方案1】:

您在指定的列上应用一个函数,在函数中提取并返回该值。

import ast

df.totals.apply(lambda x: x['visits']) # if the row value is a dict

df.totals.apply(lambda x: ast.literal_eval(x)['visits']) # if the row value is a string

【讨论】:

  • 所以我意识到行值是看起来像字典的字符串,这就是为什么我的原始代码使用 ast.literal_eval 将其转换为真正的字典的原因。您如何将其合并到上面的 lambda 语句中?
  • @ZakRaySick 我添加了一个行值是字符串的示例
猜你喜欢
  • 2013-12-03
  • 1970-01-01
  • 1970-01-01
  • 2014-05-29
  • 2015-01-04
  • 2015-09-28
  • 1970-01-01
  • 2020-07-12
  • 2016-07-27
相关资源
最近更新 更多