DataFrame의 for문에서는 df에 필드 추가가 안되나요?
보통 데이터 프레임(df)을 만들고 나서 추가사항이 있으면 필드를 추가하곤 하는데
아래와 같은 경우는 필드가 바로 추가 됩니다.
df['dtime']=[datetime.strftime(i,'%Y-%m-%d') for i in df.date]
근데, for 문 안에서는 바로 추가가 안되어 먼저 필드를 df['dtime']=""형식으로 추가하고 나서 for문에서 각 low별 값을 넣는데요..
왜 for 문 안에서는 안되는지요?
df['dtime']=""
for i in range(len(df)):
dt=datetime.strftime(df.date[i],'%Y-%m-%d')
time=f'{df.time[i][:2]}:{df.time[i][2:]}'
df['dtime'][i]=dt + " " + time
print(df)
이렇게 하면 되긴 하는데, DataFrame의 슬라이스 복사본에 값을 넣으려 한다고 경고가 뜨면서 주의문을 읽으라고 나오네요..
(경고문)
A value is trying to be set on a copy of a slice from a DataFrame)
See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
df['dtime'][i]=dt + " " + t
열공중 님 347
2022년 2월 26일 11:57 오전