簡體   English   中英

如何將計算結果添加到數據框中的新列?

[英]How do I add the results from a calculation to a new column in a dataframe?

我有這個數據框:

    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

您可以簡單地執行以下操作:

df['Dt1'] = pd.to_datetime(df['Dt1'])
df['Dt2'] = pd.to_datetime(df['Dt2'])

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

創建一個列(具有純零,NaN或其他內容),然后將其寫在循環的末尾,即df.iloc[ind,"Date_Diff"]=diff或具有一個列表Date_diff=[] ,然后附加在end Date_diff.append(diff) -最后將其寫入到df df["Date_diff"]=Date_diff

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM