【问题标题】:How do I add the results from a calculation to a new column in a dataframe?如何将计算结果添加到数据框中的新列?
【发布时间】:2020-03-22 02:52:46
【问题描述】:

我有这个数据框:

    Dt1     Dt2
0   8/21/19 8/31/19
1   8/21/19 8/31/19
2   8/21/19 8/31/19
3   8/30/19 8/31/19

然后我写了这段代码:

for ind in df.index:
    date_str1 = df['Dt1'][ind]
    date_str2 = df['Dt2'][ind]
    date_object1 = datetime.strptime(date_str1, " %m/%d/%y")
    date_object2 = datetime.strptime(date_str2, " %m/%d/%y")
    d = date_object2-date_object1
    diff = d.days
    print(diff)

我的结果是:

10
10
10
1

这是我对结果的期望,现在我想做的是为数据框中的每一行,我想创建一个新列(date_diff)并将这些结果添加到每一行,所以最后我有像这样:

    Dt1     Dt2      Date_diff
0   8/21/19 8/31/19  10
1   8/21/19 8/31/19  10
2   8/21/19 8/31/19  10
3   8/30/19 8/31/19  1

【问题讨论】:

    标签: python pandas dataframe jupyter-notebook jupyter


    【解决方案1】:

    你可以这样做:

    df['Dt1'] = pd.to_datetime(df['Dt1'])
    df['Dt2'] = pd.to_datetime(df['Dt2'])
    
    df['Date_diff'] = df['Dt2'].sub(df['Dt1']).dt.days
    

    【讨论】:

      【解决方案2】:

      要么创建一个列(使用纯零、NaN 或其他内容),然后将其写入循环末尾,即 df.iloc[ind,"Date_Diff"]=diff,要么有一个列表 Date_diff=[],然后在末尾追加 Date_diff.append(diff) - 最后把它写给你的 df df["Date_diff"]=Date_diff

      【讨论】:

      • 或者做 Quang Hoang 做的事情
      猜你喜欢
      • 1970-01-01
      • 2016-01-25
      • 2022-11-26
      • 2015-07-09
      • 1970-01-01
      • 2015-07-11
      • 1970-01-01
      • 2017-11-27
      • 1970-01-01
      相关资源
      最近更新 更多