일일 언급 된 날과 출판 된 날 간의 차이를 계산하고 싶습니다. 그래서 Pandas Timedelta는 긍정적 인면에서 부정적인면, 한계점을 극복하는 방법
df_test= pd.DataFrame([{'Mention Date': pd.Timestamp('2015-09-17 12:47:06'),
'Publication Date': pd.Timestamp('1684-01-01 00:00:00')},
{'Mention Date': pd.Timestamp('2015-09-17 12:47:06'),
'Publication Date': pd.Timestamp('2013-01-01 00:00:00')},
{'Mention Date': pd.Timestamp('2015-09-17 12:47:06'),
'Publication Date': pd.Timestamp('1724-01-01 00:00:00')},
{'Mention Date': pd.Timestamp('2015-01-01'),
'Publication Date': pd.Timestamp('1722-09-22 00:12:43.1453')},
{'Mention Date': pd.Timestamp('2015-01-01'),
'Publication Date': pd.Timestamp('1722-09-22 00:00:00')}])
가 지금은 "언급 날짜"와 "발행 날짜"사이의 차이를 계산하려면 다음 DataFrame 있습니다.
print df_test["Mention Date"] - df_test["Publication Date"]
0 -92350 days +13:12:32.290448
1 989 days 12:47:06
2 106545 days 12:47:06
3 106751 days 23:47:16.854700
4 -106752 days +00:25:26.290448
dtype: timedelta64[ns]
여기서 알 수 있듯이 행 0과 4에 대한 응답이 잘못되었습니다. 그 차이는 모든 곳에서 긍정적이어야합니다.
값으로 값만 다른 경우 응답은 양수입니다. 아래 코드를 참조하십시오.
print df_test.loc[0]["Mention Date"] - df_test.loc[0]["Publication Date"]
print df_test.loc[3]["Mention Date"] - df_test.loc[3]["Publication Date"]
print type(df_test.loc[0]["Mention Date"] - df_test.loc[0]["Publication Date"])
121154 days, 12:47:06
106751 days 23:47:16.854700
<type 'datetime.timedelta'>
그러나 결과는 다른 유형입니다.
그러나 제한적으로 타임 스탬프 ('1677-09-21 00 : 12 : 43.145225')는 https://pandas.pydata.org/pandas-docs/stable/timeseries.html#timestamp-limitations에 따라 허용되지 않습니다. 제 경우가 아니어야합니다.
- 가 어떻게 "잘못"행동을 극복하기 :
나는이 개 질문이?
- 이것은 팬더 pd.Timedelta의 버그로 간주됩니까? 아니면 이 다소 '정상적인'행동입니까?
업데이트 : pd.Timedelta의 제한 사항을 발견했습니다. https://pandas.pydata.org/pandas-docs/stable/timedeltas.html#timedelta-limitations 첫 번째 질문이 남아 있습니다. 이 한계를 극복하는 방법? 고맙습니다! 타임 스탬프의 제한이 있기 때문에