source

데이터 프레임 인덱스를 날짜/시간으로 변환

bestscript 2023. 8. 28. 21:52

데이터 프레임 인덱스를 날짜/시간으로 변환

문자열의 판다 인덱스를 날짜 시간 형식으로 변환하려면 어떻게 해야 합니까?

내 데이터 프레임df다음과 같습니다.

                     value          
2015-09-25 00:46    71.925000
2015-09-25 00:47    71.625000
2015-09-25 00:48    71.333333
2015-09-25 00:49    64.571429
2015-09-25 00:50    72.285714

인덱스가 문자열 유형이지만 다음 오류가 발생하여 datetime 형식이 필요합니다.

'Index' object has no attribute 'hour'

사용 시

df["A"] = df.index.hour

예상대로 작동해야 합니다.다음 예제를 실행해 보십시오.

import pandas as pd
import io

data = """value          
"2015-09-25 00:46"    71.925000
"2015-09-25 00:47"    71.625000
"2015-09-25 00:48"    71.333333
"2015-09-25 00:49"    64.571429
"2015-09-25 00:50"    72.285714"""

df = pd.read_table(io.StringIO(data), delim_whitespace=True)

# Converting the index as date
df.index = pd.to_datetime(df.index)

# Extracting hour & minute
df['A'] = df.index.hour
df['B'] = df.index.minute
df

#                          value  A   B
# 2015-09-25 00:46:00  71.925000  0  46
# 2015-09-25 00:47:00  71.625000  0  47
# 2015-09-25 00:48:00  71.333333  0  48
# 2015-09-25 00:49:00  64.571429  0  49
# 2015-09-25 00:50:00  72.285714  0  50

다음을 명시적으로 생성할 수 있습니다.DatetimeIndex데이터 프레임을 초기화할 때 사용합니다.데이터가 문자열 형식이라고 가정

data = [
    ('2015-09-25 00:46', '71.925000'),
    ('2015-09-25 00:47', '71.625000'),
    ('2015-09-25 00:48', '71.333333'),
    ('2015-09-25 00:49', '64.571429'),
    ('2015-09-25 00:50', '72.285714'),
]

index, values = zip(*data)

frame = pd.DataFrame({
    'values': values
}, index=pd.DatetimeIndex(index))

print(frame.index.minute)

이 질문에 대한 다른 옵션을 제공합니다. 코드에서 '.dt'를 사용해야 합니다.

import pandas as pd

df.index = pd.to_datetime(df.index)

#for get year
df.index.dt.year

#for get month
df.index.dt.month

#for get day
df.index.dt.day

#for get hour
df.index.dt.hour

#for get minute
df.index.dt.minute

하고있다

df.index = pd.to_datetime(df.index, errors='coerce')

인덱스의 데이터 유형이 다음으로 변경되었습니다.

dataframe information

언급URL : https://stackoverflow.com/questions/40815238/convert-dataframe-index-to-datetime