#python #csv #date
#python #csv #Дата
Вопрос:
У меня есть два вопроса относительно дат чтения с использованием read_csv в python
- Как читать даты, имеющие смешанный формат? Даты представлены в форме дд / мм / гг, дд-мм-гг, дд / мм / гггг или дд-мм-гггг
- есть некоторые даты в годах, меньшие или равные 1968 году. Как сохранить информацию о столетии, чтобы можно было корректно сравнивать даты.
df = pd.read_csv('train.csv',dayfirst=True,parse_dates=['DoB','DisDt'])
Я также пробовал использовать date_parser
dtpse = lambda x:pd.datetime.strptime(x,'%d/%m/%y')
df = pd.read_csv('train.csv',dayfirst=True,parse_dates=['DoB','DisDt'],date_parser=dtpse)
Даты приведены в форме, приведенной ниже в файле csv
01/01/2008
01/01/74
12-04-2004
12-04-1968
01/06/1978
Я пытаюсь использовать python read_csv для получения результатов, показанных ниже
Ожидаемые результаты
01-01-2008
01-01-74
12-04-2004
12-04-1968
01-06-1978
Основная цель — сохранить информацию о столетии, чтобы при вычитании дат вычислялась правильная разница .
Комментарии:
1. Вы просто хотите заменить знаки, потому что тогда вы могли бы использовать функцию замены: date.replace(«/», «-«)
2. В противном случае вы можете отсортировать его, затем вы можете разделить его и добавить 19 к каждой дате, которая имеет только 2 цифры
3. @SeanSdahl Основная цель — найти разницу между этими двумя датами
4. Две даты? или все они попарно?
5. @SeanSdahl У меня есть два столбца даты в моем имени dateframe ‘DOB’ и ‘DisDt’. мне нужно найти разницу между этими двумя датами для всех строк в фрейме даты
Ответ №1:
Попробуйте этот код:
with open ("file.csv", "r", newline='') as file:
dates = []
for line in file:
line.replace("/","-")
dates.append(line)
Затем вы должны получить список элементов, которые все разделены символом «-»