열을 날짜 형식으로 변환(Pandas Dataframe)
팬더 데이터 프레임은 다음과 같습니다.
Symbol Date
A 02/20/2015
A 01/15/2016
A 08/21/2015
나는 그것을 분류하고 싶습니다.Date
, 하지만 그 칼럼은 단지 a.object
.
칼럼을 날짜 객체로 만들려고 했는데 해당 형식이 필요하지 않은 문제가 생겼습니다.필요한 형식은2015-02-20,
기타.
그래서 이제 저는 numpy가 'American' 날짜를 ISO 표준으로 변환하도록 하는 방법을 알아내려고 합니다. 그러면 날짜를 지정할 수 있는 객체로 만들 수 있기 때문입니다.
어떻게 하면 이 미국 날짜들을 ISO 표준으로 변환할 수 있을까요, 아니면 팬더 안에서 더 간단한 방법이 없을까요?
사용가능pd.to_datetime()
날짜 시간 객체로 변환합니다.포맷 파라미터가 필요한데, 고객님 같은 경우는 필요 없을 것 같습니다.
>>> import pandas as pd
>>> df = pd.DataFrame( {'Symbol':['A','A','A'] ,
'Date':['02/20/2015','01/15/2016','08/21/2015']})
>>> df
Date Symbol
0 02/20/2015 A
1 01/15/2016 A
2 08/21/2015 A
>>> df['Date'] =pd.to_datetime(df.Date)
>>> df.sort('Date') # This now sorts in date order
Date Symbol
0 2015-02-20 A
2 2015-08-21 A
1 2016-01-15 A
이후 검색을 위해 정렬 문을 변경할 수 있습니다.
>>> df.sort_values(by='Date') # This now sorts in date order
Date Symbol
0 2015-02-20 A
2 2015-08-21 A
1 2016-01-15 A
sort
메소드가 더 이상 사용되지 않고 로 대체되었습니다. 를 사용하여 datetime object로 변환한 후df['Date']=pd.to_datetime(df['Date'])
df.sort_values(by=['Date'])
참고: 제자리 정렬 및/또는 내림차순 정렬(가장 최근 첫 번째 순서):
df.sort_values(by=['Date'], inplace=True, ascending=False)
@JAB의 대답은 빠르고 간결합니다.하지만 그것은 변화를 줍니다.DataFrame
당신은 당신이 원할 수도 있고 원하지 않을 수도 있는 정렬을 시도하고 있습니다.
(참고: 날짜 열은 문자열이 아닌 날짜여야 하기 때문에 거의 틀림없이 원할 것입니다!)
날짜를 날짜로 변경하지 않으려는 경우에는 다른 방법으로 변경할 수도 있습니다.
먼저 정렬된 데이터에서 인덱스를 가져옵니다.Date
열:
In [25]: pd.to_datetime(df.Date).order().index
Out[25]: Int64Index([0, 2, 1], dtype='int64')
그런 다음 원본을 색인화하는 데 사용합니다.DataFrame
, 손대지 않은 채로 두는 것:
In [26]: df.ix[pd.to_datetime(df.Date).order().index]
Out[26]:
Date Symbol
0 2015-02-20 A
2 2015-08-21 A
1 2016-01-15 A
마법!
참고: Pandas 버전 0.20.0 이상의 경우 다음 대신 사용ix
, 지금은 더 이상 사용하지 않습니다.
저희가.key
논박을 펴다이렇게 하면 원래 데이터 프레임을 조정하지 않고 키를 지정하여 데이터 프레임을 정렬할 수 있습니다.
df.sort_values(by="Date", key=pd.to_datetime)
Symbol Date
0 A 02/20/2015
2 A 08/21/2015
1 A 01/15/2016
날짜 열이 포함된 데이터는 아래 코드를 사용하여 읽을 수 있습니다.
data = pd.csv(file_path,parse_dates=[date_column])
위의 코드 라인을 사용하여 데이터를 읽게 되면 날짜에 대한 정보가 포함된 열에 접근할 수 있습니다.pd.date_time()
예:
pd.date_time(data[date_column], format = '%d/%m/%y')
요구사항에 따라 날짜 형식을 변경합니다.
data['Date'] = data['Date'].apply(pd.to_datetime) # non-null datetime64[ns]
언급URL : https://stackoverflow.com/questions/28161356/convert-column-to-date-format-pandas-dataframe
'programing' 카테고리의 다른 글
MySQL 모든 스토어에 대한 최신 엔트리 가져오기 (0) | 2023.10.18 |
---|---|
SQL Server 2005에서 여러 행을 쉼표로 구분된 목록으로 결합하려면 어떻게 해야 합니까? (0) | 2023.10.18 |
기본 FirebaseApp이 초기화되지 않았습니다. (0) | 2023.10.18 |
Clean C 코드를 작성하는 동안 ARM 미정렬 메모리 액세스의 이점 활용 (0) | 2023.10.18 |
Jquery AJAX로 페이지 프레임 로드 (0) | 2023.10.18 |