Pandas: 음수 Timedelta의 더 λ‚˜μ€ ν‘œμ‹œ

에 λ§Œλ“  2017λ…„ 08μ›” 11일  Β·  3μ½”λ©˜νŠΈ  Β·  좜처: pandas-dev/pandas

μ½”λ“œ μƒ˜ν”Œ, κ°€λŠ₯ν•œ 경우 λ³΅μ‚¬ν•˜μ—¬ λΆ™μ—¬λ„£κΈ° κ°€λŠ₯ν•œ 예

In [2]: pd.to_timedelta(0, unit='ms') - pd.to_timedelta(123, unit='ms')
Out[2]: Timedelta('-1 days +23:59:59.877000')

문제 μ„€λͺ…

Timedelta('-1 days +23:59:59.877000') λŠ” 음수 Timedelta λͺ…ν™•ν•˜κ²Œ ν‘œμ‹œν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

Timedelta('0 days -00:00:00.123000') λ˜λŠ” Timedelta('-0 days 00:00:00.123000') 와 같이 음수 Timedelta λ₯Ό ν‘œμ‹œν•˜λŠ” 것이 (λ§Žμ€ μš©λ„μ—μ„œ) 더 λ‚˜μ„ 수 μžˆμŠ΅λ‹ˆλ‹€.

Enhancement Output-Formatting Timedelta

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

μŒμˆ˜μ— λŒ€ν•œ ν˜„μž¬ ν‘œν˜„μ΄ 정말 ν˜Όλž€μŠ€λŸ½κΈ° λ•Œλ¬Έμ— 정말 κ°€μΉ˜κ°€ μžˆλ‹€κ³  λ§ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ 일관성을 κΉ¨λŠ” 것과 κ΄€λ ¨ν•˜μ—¬ 음수 timedeltas에 λŒ€ν•œ λ¬Έμžμ—΄ ν‘œν˜„μ€ μ–΄λ–€ μ’…λ₯˜μ˜ μœ μš©μ„±μ„ 염두에 두지 μ•Šμ•˜μŠ΅λ‹ˆλ‹€. λ‹€μŒ 토둠을 μ°Ύμ•˜μŠ΅λ‹ˆλ‹€(기본적으둜 λ‚΄κ°€ 찾을 수 μžˆλŠ” λͺ¨λ“  것).

https://lists.gt.net/python/dev/1129944

이 ν–‰λ™μ˜ κ·Όκ±°λ₯Ό κΈ°μ–΅ν•˜λŠ” μ‚¬λžŒμ΄ μžˆμŠ΅λ‹ˆκΉŒ?

λ‚΄κ°€ λ¬Έμ„œμ— μ“΄ 것보닀 더 λ‚˜μ€ κ·Όκ±°λŠ” κΈ°μ–΅λ‚˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€: "String
timedelta 객체의 ν‘œν˜„μ€ λ‹€μŒκ³Ό μœ μ‚¬ν•˜κ²Œ μ •κ·œν™”λ©λ‹ˆλ‹€.
λ‚΄λΆ€ λŒ€ν‘œ."

λ‚˜λŠ” 파이썬의 κΈ°λ³Έ λ¬Έμžμ—΄ κ΅¬ν˜„μ„ λ³€κ²½ν•˜λŠ” 것이 더 λ‚˜μ„ 것이라고 μƒκ°ν•˜μ§€λ§Œ(νŒ¬λ”λ₯Ό ν¬ν•¨ν•œ λͺ¨λ“  λ‹€λ₯Έ ν”„λ‘œμ νŠΈμ— λŒ€ν•΄ μž„μ‹œ λ°©μ‹μœΌλ‘œ μˆ˜ν–‰ν•˜λŠ” λŒ€μ‹ ), 이것이 사싀이 μ•„λ‹ˆκΈ° λ•Œλ¬Έμ— λ‚˜λŠ” 그것이 방법이 맀우 직관적이지 μ•ŠκΈ° λ•Œλ¬Έμ— νŒ¬λ”μ— μΆ”κ°€ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.
음수 νƒ€μž„λΈνƒ€λ₯Ό λ‹€λ£° λ•Œ λˆ„κ΅¬λΌλ„ 그것을 μ„ ν˜Έν•˜λŠ” κ²½μš°λŠ” μƒκ°λ‚˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

λͺ¨λ“  3 λŒ“κΈ€

xref #15633 μš°λ¦¬λŠ” μ—¬κΈ°μ—μ„œ 파이썬의 (ν˜Όλž€μŠ€λŸ¬μš΄) λ¦¬λ“œλ₯Ό λ”°λ₯΄κ³  μžˆμ§€λ§Œ repr을 쀑단할 수 μžˆλ‹€κ³  κ°€μ •ν•©λ‹ˆλ‹€.

In [2]: import datetime

In [3]: datetime.timedelta() - datetime.timedelta(milliseconds=123)
Out[3]: datetime.timedelta(-1, 86399, 877000)

In [4]: str(datetime.timedelta() - datetime.timedelta(milliseconds=123))
Out[4]: '-1 day, 23:59:59.877000'

λ‚˜λŠ” μ—¬κΈ°μ—μ„œ λΆˆμΌμΉ˜ν•  κ°€μΉ˜κ°€ μžˆλŠ”μ§€ ν™•μ‹€ν•˜μ§€ μ•Šλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

μŒμˆ˜μ— λŒ€ν•œ ν˜„μž¬ ν‘œν˜„μ΄ 정말 ν˜Όλž€μŠ€λŸ½κΈ° λ•Œλ¬Έμ— 정말 κ°€μΉ˜κ°€ μžˆλ‹€κ³  λ§ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ 일관성을 κΉ¨λŠ” 것과 κ΄€λ ¨ν•˜μ—¬ 음수 timedeltas에 λŒ€ν•œ λ¬Έμžμ—΄ ν‘œν˜„μ€ μ–΄λ–€ μ’…λ₯˜μ˜ μœ μš©μ„±μ„ 염두에 두지 μ•Šμ•˜μŠ΅λ‹ˆλ‹€. λ‹€μŒ 토둠을 μ°Ύμ•˜μŠ΅λ‹ˆλ‹€(기본적으둜 λ‚΄κ°€ 찾을 수 μžˆλŠ” λͺ¨λ“  것).

https://lists.gt.net/python/dev/1129944

이 ν–‰λ™μ˜ κ·Όκ±°λ₯Ό κΈ°μ–΅ν•˜λŠ” μ‚¬λžŒμ΄ μžˆμŠ΅λ‹ˆκΉŒ?

λ‚΄κ°€ λ¬Έμ„œμ— μ“΄ 것보닀 더 λ‚˜μ€ κ·Όκ±°λŠ” κΈ°μ–΅λ‚˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€: "String
timedelta 객체의 ν‘œν˜„μ€ λ‹€μŒκ³Ό μœ μ‚¬ν•˜κ²Œ μ •κ·œν™”λ©λ‹ˆλ‹€.
λ‚΄λΆ€ λŒ€ν‘œ."

λ‚˜λŠ” 파이썬의 κΈ°λ³Έ λ¬Έμžμ—΄ κ΅¬ν˜„μ„ λ³€κ²½ν•˜λŠ” 것이 더 λ‚˜μ„ 것이라고 μƒκ°ν•˜μ§€λ§Œ(νŒ¬λ”λ₯Ό ν¬ν•¨ν•œ λͺ¨λ“  λ‹€λ₯Έ ν”„λ‘œμ νŠΈμ— λŒ€ν•΄ μž„μ‹œ λ°©μ‹μœΌλ‘œ μˆ˜ν–‰ν•˜λŠ” λŒ€μ‹ ), 이것이 사싀이 μ•„λ‹ˆκΈ° λ•Œλ¬Έμ— λ‚˜λŠ” 그것이 방법이 맀우 직관적이지 μ•ŠκΈ° λ•Œλ¬Έμ— νŒ¬λ”μ— μΆ”κ°€ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.
음수 νƒ€μž„λΈνƒ€λ₯Ό λ‹€λ£° λ•Œ λˆ„κ΅¬λΌλ„ 그것을 μ„ ν˜Έν•˜λŠ” κ²½μš°λŠ” μƒκ°λ‚˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰