2017-11-10 4 views
0

팬더에서 동일한 날짜 형식의 서로 다른 두 개의 데이터 프레임을 만들고 원본 CSV 파일에는 서로 다른 두 가지 날짜 형식이 있습니다. 이러한 데이터 프레임을 동일한 날짜 형식으로 가져 오려면 to_datetime 함수에서 무엇을 사용해야합니까?두 데이터 프레임에 대한 팬더 to_datetime은 동일한 날짜 형식을 사용합니다.

#DF1 (year, month day, time) 

Date      Event 
2017, February 03, 09:30 (United States) Unemployment Rate 
2017, February 03, 09:30 (United States) Nonfarm Payrolls 
2017, February 03, 11:00 (United States) ISM Non-Manufacturing PMI 


#DF2 (day.month.year time) 

Local time    Open High Low  Close 
03.02.2017 08:30:00.000 1.07363 1.0775 1.07134 1.0762 
03.02.2017 08:35:00.000 1.07626 1.07669 1.07324 1.07375 
03.02.2017 08:40:00.000 1.07372 1.07585 1.0736 1.0758 
03.02.2017 08:45:00.000 1.0758 1.07626 1.07481 1.07487 
03.02.2017 08:50:00.000 1.07488 1.07519 1.0745 1.07515 
03.02.2017 08:55:00.000 1.07518 1.07573 1.07478 1.07562 
03.02.2017 09:00:00.000 1.07561 1.07729 1.07559 1.07694 
03.02.2017 09:05:00.000 1.07693 1.07784 1.07687 1.07757 
03.02.2017 09:10:00.000 1.07756 1.07825 1.07669 1.07688 

답변

0

이 당신에게 같은 날짜 형식을 줄 것이다,하지만 당신은 정확하게 당신이 그들을에서 원하는 형식 지정, 그래서 우리가 알고하자, 나는이 대답을 업데이트 할 수 없습니다.

import pandas as pd 

df = pd.DataFrame({'dates':['2017, February 03, 09:30','2017, February 03, 09:45']}) 
df2 = pd.DataFrame({'dates':['03.02.2017 08:30:00.00', '03.02.2017 08:35:00.000']}) 

df['dates'] = pd.to_datetime(df['dates']) 
df2['dates'] = pd.to_datetime(df2['dates']) 
+0

내가 DF2의 날짜가 날짜 모두에서 다른 변환하기 전에 먼저 포맷을 보정 할 필요가 있다고 생각이 일반적인되지 않습니다. –

+0

위의 정확한 코드를 실행했으며 둘 다 표준 팬다 datetime 형식으로 변환되었습니다. 이 시점에서 OP가 찾고있는 형식으로 변환 할 수 있습니다. 'pd .__ version__ = 0.20.2' – pshep123

+0

예, 날짜가 확실히 변환됩니다. 하지만 일반적인 형식을 유지하려면 몇 가지 조정이 필요합니다. 예를 들어 언급 한 단계를 수행 한 후에 수행 할 수 있습니다. –

0

먼저 두 번째 데이터 프레임에서 마지막 세 개의 0을 제거해야한다고 생각합니다. 그런 다음 데이터 프레임에 원하는 날짜 중 원하는 날짜의 형식을 추가하십시오. 아래의 코드를 참조하십시오 :

df = pd.DataFrame({'dates':['2017, February 03, 09:30','2017, February 03, 09:45']}) 
df2 = pd.DataFrame({'dates':['03.02.2017 08:30:00.000', '03.02.2017 08:35:00.000']}) 
df2['dates'] = df2['dates'].astype(str).str[:-4].astype(str) 
df["dates"] = pd.to_datetime(df["dates"]) 
df2["dates"] = pd.to_datetime(df2["dates"],format='%d.%m.%Y %H:%M:%S') 

출력 :

>>>df 
      dates 
0 2017-02-03 09:30:00 
1 2017-02-03 09:45:00 
>>>df2 
      dates 
0 2017-02-03 08:30:00 
1 2017-02-03 08:35:00 
관련 문제