有兩列start_date和end_date(字串):
end_date中的某些行的格式類似于 9999-12-12 我想用start_date中的 YYYY 替換 9999
我嘗試提取start_date列的前 4 個字符(得到一個 pd.Series)并使用它來替換,但我找不到方法
怎么樣
| 開始日期 | 結束日期 |
|---|---|
| 2020-12-25 | 2020-12-28 |
| 2021-02-02 | 9999 -02-09 |
| 2019-02-13 | 9999 -02-15 |
應該如何
| 開始日期 | 結束日期 |
|---|---|
| 2020-12-25 | 2020-12-28 |
| 2021-02-02 _ | 2021-02-09 _ |
| 2019-02-13 _ | 2019-02-15 _ |
uj5u.com熱心網友回復:
或使用np.where:
df['end_date'] = np.where(df.end_date.str[:4] == '9999', df.start_date.str[:4] df.end_date.str[4:], df.end_date)
df
start_date end_date
0 2020-12-25 2020-12-28
1 2021-02-02 2021-02-09
2 2019-02-13 2019-02-15
uj5u.com熱心網友回復:
假設您的資料框被稱為df:
df['end_date'] = df.apply(lambda row: row['end_date'].replace("9999", row['start_date'][0:4]), axis=1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/428726.html
