是否可以使用 Pandas 庫替換 csv 檔案中的那些零和負日,我只需要用零或三十天替換任何負日
這是我的示例:
import datetime
from dateutil.relativedelta import relativedelta
import pandas as pd
import numpy as np
df = pd.read_csv("csv_data.csv", encoding="UTF-8",
parse_dates = [
"firstdate",
"lastdate",
], dayfirst=True
)
diff = pd.firstdate - pd.lastdate
#When i skip the following loop
"""for d in diff:
if d < 0:
df['thedif'] = 0
else:
df['thedif'] = diff"""
#and add this line below
df['thedif'] = diff
index firstdate lastdate thedif
0 2021-03-02 2021-04-02 -31days
1 2021-04-02 2021-03-02 31days
2 2021-03-03 2021-03-03 0days
但是如果我們在 numpy 中使用 where 關鍵字,我們會得到
Invalid comparison between dtype=timedelta64[ns] and int
uj5u.com熱心網友回復:
Tou 可以通過Series.dt.days以下方式將天數轉換為整數:
diff = (df.firstdate - df.lastdate).dt.days
df['thedif'] = np.where(diff < 0, 0, diff)
或比較pd.Timedelta(0):
diff = df.firstdate - df.lastdate
df['thedif'] = np.where(diff < pd.Timedelta(0), pd.Timedelta(0), diff)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/331245.html
