Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python Pandas – 원본 인덱스를 무시하고 TimeDeltaIndex 객체에서 DataFrame 생성하기

TimeDeltaIndex 객체로부터 DataFrame을 생성하려면 to_frame() 메서드를 사용합니다. 이때 index 매개변수에 False를 지정하면 원본 인덱스를 무시하고 새로운 기본 인덱스(0부터 시작하는 정수)가 적용된 DataFrame이 반환됩니다.

필요한 라이브러리 가져오기

먼저 pandas 라이브러리를 임포트합니다.

import pandas as pd

TimeDeltaIndex 객체 생성

timedelta 형식의 데이터를 'data' 매개변수에 전달하여 TimeDeltaIndex 객체를 생성합니다.

tdIndex = pd.TimedeltaIndex(data =['4 day 8h 20min 35us 45ns', '+17:42:19.999999',
'9 day 3h 08:16:02.000055', '+22:35:25.000075'])

생성된 TimedeltaIndex를 출력해 확인합니다.

print("TimedeltaIndex...\n", tdIndex)

TimeDeltaIndex에서 DataFrame으로 변환

to_frame() 메서드에 index=False를 전달하면, 반환되는 DataFrame에 원본 인덱스가 설정되지 않고 기본 정수 인덱스가 사용됩니다.

print("\nTimeDeltaIndex to DataFrame...\n", tdIndex.to_frame(index=False))

전체 예제 코드

import pandas as pd

# TimeDeltaIndex 객체 생성
# timedelta 형식의 데이터를 'data' 매개변수로 설정
tdIndex = pd.TimedeltaIndex(data =['4 day 8h 20min 35us 45ns', '+17:42:19.999999',
'9 day 3h 08:16:02.000055', '+22:35:25.000075'])

# TimedeltaIndex 출력
print("TimedeltaIndex...\n", tdIndex)

# TimeDelta의 구성 요소(일, 시, 분, 초 등)를 담은 DataFrame 반환
print("\nThe Dataframe of the components of TimeDeltas...\n", tdIndex.components)

# TimeDeltaIndex 객체에서 DataFrame 생성
# index=False를 지정하여 원본 인덱스를 무시
print("\nTimeDeltaIndex to DataFrame...\n", tdIndex.to_frame(index=False))

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

TimedeltaIndex...
TimedeltaIndex(['4 days 08:20:00.000035045', '0 days 17:42:19.999999',
'9 days 11:16:02.000055', '0 days 22:35:25.000075'],
dtype='timedelta64[ns]', freq=None)

The Dataframe of the components of TimeDeltas...
    days hours minutes seconds milliseconds microseconds nanoseconds
0     4     8      20      0            0           35          45
1     0    17      42     19          999          999           0
2     9    11      16      2            0           55           0
3     0    22      35     25            0           75           0

TimeDeltaIndex to DataFrame...
0
0 4 days 08:20:00.000035045
1 0 days 17:42:19.999999
2 9 days 11:16:02.000055
3 0 days 22:35:25.000075

정리

to_frame(index=False)를 사용하면 TimeDeltaIndex의 값들이 그대로 DataFrame의 열로 변환되면서, 원본 인덱스 대신 0부터 시작하는 기본 정수 인덱스가 자동으로 부여됩니다. 반대로 index=True(기본값)를 사용하면 원본 인덱스가 그대로 유지됩니다.