簡體   English   中英

將年轉換為年-月-日python csv

[英]converting year to year-month-day python pandas csv

請在csv文件中有接近10個條目,如下所示

PatienceID      Case        Treatment     Admitted_Date      Discharged_Date
PAT1002         Fever        Yes           1929-02-10         1929-02-13
PAT1023         Ebola        Yes           2015-10-21         2015-12-29
PAT1003         HIV          No            2012               2014-02-21
PAT1991         Headache     Yes           2013               2013
PAT2028         Epilepsy     Yes           2011               2016
PAT2931         Malaria      Yes           2016-01-23         2016

請注意,如果我們研究csv,則Admitted_Date和/或Discharged_Date下的值只有一年而沒有Month-Day 我不知道如何用Month-DAY完成日期(即,讓Discharge_Date在允許日期之前進行,例如,讓我們考慮Admitted_Date = 2013Discharged_Date = 2013 ,如果Admitted_Date01-01-2013那么Discharged_Date應該為12-12-2013 (1月至12月)

我已經嘗試了可能性,但它變得更加混亂。 非常感謝,非常感謝。

預期產量:

PatienceID      Case        Treatment     Admitted_Date      Discharged_Date
    PAT1002         Fever        Yes        1929-02-10         1929-02-13
    PAT1023         Ebola        Yes        2015-10-21         2015-12-29
    PAT1003         HIV          No         2012-MM-DD       2014-02-21
    PAT1991         Headache     Yes        2013-MM-DD         2013-MM-DD
    PAT2028         Epilepsy     Yes        2011-MM-DD         2016-MM-DD
    PAT2931         Malaria      Yes        2016-01-23         2016-MM-DD

到目前為止我嘗試過的

import pandas as pd

DF = pd.read_csv('mydata.csv') 
for Admitted_Date, Discharged_Date in DF
  pd.to_datetime(mydata.pop('Date'), format="%b%Y")

IIUC,您可以嘗試首先將列轉換為to_datetime ,然后使用YearEnd ,其中maskloc的原始列長度為4

df['Admitted_Date'] = pd.to_datetime(df['Admitted_Date'])
mask = df['Discharged_Date'].str.len() == 4
print mask
0    False
1    False
2    False
3     True
4     True
5     True
Name: Discharged_Date, dtype: bool

df['Discharged_Date'] = pd.to_datetime(df['Discharged_Date'])
df.loc[mask, 'Discharged_Date' ] +=  pd.offsets.YearEnd()
print df
  PatienceID      Case Treatment Admitted_Date Discharged_Date
0    PAT1002     Fever       Yes    1929-02-10      1929-02-13
1    PAT1023     Ebola       Yes    2015-10-21      2015-12-29
2    PAT1003       HIV        No    2012-01-01      2014-02-21
3    PAT1991  Headache       Yes    2013-01-01      2013-12-31
4    PAT2028  Epilepsy       Yes    2011-01-01      2016-12-31
5    PAT2931   Malaria       Yes    2016-01-23      2016-12-31

暫無
暫無

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

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