【问题标题】:How to get the gap between years using python pandas如何使用 python pandas 获得年份之间的差距
【发布时间】:2018-07-13 04:35:30
【问题描述】:

我有这样的数据框

Series_id  F start end data

3               A     2012 2018  [[2012,0],[2014,0],[2015,1],[2017,3],[2019,0],[2020.1]]

我需要这样的输出

{series_id:3,start:2013,end:2013,count:1},{series_id:3,start:2016,end:2016,count:1}{series_id:3,start:2018,end:2018 ,count:1},

我必须遍历每一行的数据框并在数据列中找到年份之间的差距数据列是一个列表的列表,其中包含年份和每个列表中的一些数据

我必须检查连续和缺失的年份并计算。 计数示例:在迭代 2013、2016 和 2018 时获取系列 id:3 start=2014 end=2018 但在两者之间,2017 就在那里,所以我必须这样 {series_id:3,start:2013,end:2013,count:1}, {series_id:3,start:2016,end:2016,count:1},{series_id:3,start:2018,end:2018,count:1}

即使我无法迭代它,我该如何实现? 需要帮助

【问题讨论】:

  • 我不明白您是如何获得count 的。另外为什么你有随机重复的条目?
  • 我已经改进了问题
  • 感谢改进。还是很难理解。您的结果包含 {series_id:2,start:2013,end:2013,count:1},但 Series_id:2 中没有 2013。请解释一下。
  • 我需要的是结果中缺少的年份。在 2012 年和 2014 年之间缺少 2013 年。
  • 请发布一个简单易懂的数据框和预期的输出

标签: python pandas


【解决方案1】:

如果您的问题是如何将在 pandas 数据帧上执行的查询操作转换为列表。 pandas 上有一个称为 to_json() 的方法。 找到下面的链接以查看示例和实现。

enter link description here

使用 orient = 记录 然后你可以使用json.loads() 转换为列表。

现在您可以对其进行迭代。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-08
    • 1970-01-01
    • 2013-07-23
    相关资源
    最近更新 更多