【问题标题】:Count running total of number of days in DataFrame and insert value into new column计算 DataFrame 中的总天数并将值插入新列
【发布时间】:2021-04-03 16:26:57
【问题描述】:

新手问题。

我有一个包含日期列表的数据框。我想计算日期数并将逐行经过的天数的总和插入新列。我已经得到了一个插入计数的工作循环,但它正在插入列的整个长度的计数。我已经弄清楚我正在做的是告诉它插入整个系列的长度,所以我知道它为什么会出错,但我已经没有猜测到谷歌找到我正在寻找的信息为。

我有什么:

date day_num
669 2020-06-01 2
670 2020-06-02 2
671 2020-06-03 2

我想得到什么:

date day_num
669 2020-06-01 0
670 2020-06-02 1
671 2020-06-03 2

我是如何做到的:

index = 0
for row in df:
    df['day_num'] = index
    index = index + 1

我意识到这可以通过从我用来获取我想要的值的 df 提取中设置索引值来完成,这是关于理解如何插入如上所述的值。

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    只包括一个运行计数器,你可以简单地做

    df['day_num']=range(len(df))
    

    输出

        date    day_num
    669 2020-06-01  0
    670 2020-06-02  1
    671 2020-06-03  2
    

    要实际计算数据框中从第一天开始的天数,您可以这样做

    df['day_num']=(df['date'] - df['date'].iloc[0]).dt.days
    

    (确保“日期”列是实际日期,即您可能要先执行df['date'] = pd.to_datetime(df['date'])

    【讨论】:

      猜你喜欢
      • 2012-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-05
      • 1970-01-01
      • 1970-01-01
      • 2020-03-16
      相关资源
      最近更新 更多