반응형
DataFrame panda에서 날짜 사이의 날짜 수가 포함된 열 추가
'B'의 날짜에서 'A'의 날짜를 빼고 차이가 있는 새 열을 추가하려고 합니다.
df
A B
one 2014-01-01 2014-02-28
two 2014-02-03 2014-03-01
다음을 시도했지만 for 루프에 포함하려고 하면 오류가 발생합니다.
import datetime
date1=df['A'][0]
date2=df['B'][0]
mdate1 = datetime.datetime.strptime(date1, "%Y-%m-%d").date()
rdate1 = datetime.datetime.strptime(date2, "%Y-%m-%d").date()
delta = (mdate1 - rdate1).days
print delta
어떻게 해야 하나?
'days' 텍스트 요소를 제거하려면 dt() accessor for series: https://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.dt.html 를 사용할 수도 있습니다.
그렇게,
df[['A','B']] = df[['A','B']].apply(pd.to_datetime) #if conversion required
df['C'] = (df['B'] - df['A']).dt.days
다음을 반환합니다.
A B C
one 2014-01-01 2014-02-28 58
two 2014-02-03 2014-03-01 26
날짜/시간 열이라고 가정합니다(적용되지 않는 경우).to_datetime
) 항목을 빼면 됩니다.
df['A'] = pd.to_datetime(df['A'])
df['B'] = pd.to_datetime(df['B'])
In [11]: df.dtypes # if already datetime64 you don't need to use to_datetime
Out[11]:
A datetime64[ns]
B datetime64[ns]
dtype: object
In [12]: df['A'] - df['B']
Out[12]:
one -58 days
two -26 days
dtype: timedelta64[ns]
In [13]: df['C'] = df['A'] - df['B']
In [14]: df
Out[14]:
A B C
one 2014-01-01 2014-02-28 -58 days
two 2014-02-03 2014-03-01 -26 days
참고: 새 판다(예: 0.13.1)를 사용하고 있는지 확인하십시오. 이전 버전에서는 사용할 수 없습니다.
이를 위한 가장 빠른 Pythonic(그리고 가장 빠른) 방법에는 목록 이해가 최선의 방법입니다.
[int(i.days) for i in (df.B - df.A)]
- 시간 델타를 반환합니다(예: '-58일').
- i.days는 이 값을 긴 정수 값(예: -58L)으로 반환합니다.
- int(i.days)는 당신이 찾는 -58을 줄 것입니다.
열이 날짜/시간 형식이 아닌 경우.더 짧은 구문은 다음과 같습니다.df.A = pd.to_datetime(df.A)
이거 어때:
times['days_since'] = max(list(df.index.values))
times['days_since'] = times['days_since'] - times['months']
times
위의 해결책은 나에게 효과가 없었습니다.단순을 사용하는 경우pd.to_datetime()
먼저 변환하고 나중에 다음을 사용할 수 있습니다.
import numpy as np
df['C'] = df['A'] - df['B'] / np.timedelta64(1, 'D')
언급URL : https://stackoverflow.com/questions/22132525/add-column-with-number-of-days-between-dates-in-dataframe-pandas
반응형
'programing' 카테고리의 다른 글
aspx 보기에서 '사용' 문을 사용할 수 있습니까?(ASP.NET MVC) (0) | 2023.07.17 |
---|---|
TS1128: 선언 또는 문이 필요합니다(파일 끝). (0) | 2023.07.17 |
ASP.NET Core: 게시 시 파일 제외 또는 포함 (0) | 2023.07.12 |
Android Developer Console의 앱 목록에서 프로그램을 제거하는 방법 (0) | 2023.07.12 |
Excel VBA - 코드 편집기에서 라인 번호를 켜는 방법 (0) | 2023.07.12 |