시간 (기간)이 매우 이상한 형식으로 제공되는 다음 Pandas 데이터 프레임이 있습니다.
Person Activity Duration
1 A 1 00:00
2 A 1 00:00
3 B 0 21:17
4 C 0 17:11
여기서는 1 00:00
24 시간을 0 21:17
의미하고 0 일과 21:17 시간, 즉 21:17 시간을 의미합니다. dtypes를 간략히 살펴보면 다음이 반환됩니다.
In[1]: df.dtypes
Out[1]:
Person object
Activity object
Duration object
dtype: object
Duration
값이 1 00:00
인 경우 24를 반환 하고 기간이 있으면 10 진수 값 을 반환 하도록 열을 일관되게 처리하려면 어떻게 해야 0 21:17
합니까? 의 십진수 값은 0 21:17
21.283입니다.
결과는 다음과 같아야합니다.
Person Activity Duration
1 A 24
2 A 24
3 B 21.283
4 C 17.183
1 00:00, 즉 24:00을 넘지 않을 것이라고 언급했듯이 더 간단한 방법이 있습니다.
'''
Person Activity Duration
1 A 1 00:00
2 A 1 00:00
3 B 0 21:17
4 C 0 17:11
'''
import pandas as pd
df = pd.read_clipboard("\t")
.
Person Activity Duration
0 1 A 1 00:00
1 2 A 1 00:00
2 3 B 0 21:17
3 4 C 0 17:11
.
df['Duration'] = df['Duration'].str.split(' ')
df['Duration'] = ['24:00' if int(val[0]) == 1 else val[1] for val in df['Duration']]
print(df)
.
Person Activity Duration
0 1 A 24:00
1 2 A 24:00
2 3 B 21:17
3 4 C 17:11
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다