데이터

파이썬 자주 쓰이지만 헷갈리는 코드

So_Bee_93 2021. 5. 22. 15:04
SMALL

 

안녕하세요 😊

 

 

 

데이터 전처리에서 자주 쓰이는 명령어지만 잘 실수하거나 까먹는 코드 (제 기준) 위주로 정리했습니다. 

 

1. append

append의 경우 데이터프레임에서 append를 할 때와 리스트에서 append를 할 때 사소한 차이가 있더라구요.

append는 대부분이 알고 계신 것처럼 데이터를 뒤에 추가하는 명령어인데요.

 

쉬운 예시를 보여드리면 다음과 같습니다.

a=[1,2,3]
a.append(b)
print(a)
[1,2,3,4]

 

a= [1,2,3]
b=[4,5]

a.append(b)
print(a)
[1,2,3,[4,5]]

 

위와 같이 append는 쉽게 생각해서 a라는 리스트 안에 b라는 리스트 혹은 데이터 자체를 그대로 찍어 넣는다고 생각하시면 편할 것 같습니다. 리스트 안에 리스트가 생긴 것 보이시나요? 😀

 

그렇다면 리스트 안에 리스트가 안 생기고 하나의 리스트로 묶이게 하려면 어떻게 해야 할까요??

 

a=[1,2,3]
b=[4,5]

a.extend(b)
print(a)
[1,2,3,4,5]

 

위와 같이 extend 명령어를 쓰면 된답니다 ! 

 

 

 

 

근데 데이터 프레임에서의 append는 ?? 




import pandas as pd 
a = pd.DataFrame({'a':[1,2,3],'b':[4,5,6]})

print(a)
        a	b
0	1	4
1	2	5
2	3	6


b = pd.DataFrame({'a':[7,8,9],'b':[10,11,12]})

print(b)


       a	b
0	7	10
1	8	11
2	9	12

 

 

예를 들어 위의 예처럼 컬럼 값이 똑같은 두개의 데이터프레임을

아래로 이어서 붙이려고 하는 경우가 있다고 합시다. 

 

 

이럴 때도 대부분은 똑같이 append를 사용하실꺼라 생각하는데요.

 

a.append(b)


       a	b
0	1	4
1	2	5
2	3	6
0	7	10
1	8	11
2	9	12

 

a.append(b)를 하면 저희가 원하는 것처럼 나오는걸 확인할 수 있습니다. 

 

*그러나 index는 이어서 나오지 않기 때문에 iloc 명령어를 사용하는데 제한되겠죠?

 

그러나 그냥 a만 확인해보면 어떻게 나올까요? 

 

print(a)
        a	b
0	1	4
1	2	5
2	3	6

 

네! 다시 원래의 a 대로 나온다는 거! 

 

결론은!

 

 

리스트의 경우 append를 한 이후 값 그대로 나오지만

데이터 프레임은 그렇지 않다는 걸 쉽게 놓치는 경우가 많더라구요! 

 

이런 경우에는 그냥 a=a.append(b) 라고 다시 a로 정의해주면 된답니다 ! 

 

 

별거 아니지만 사소한 차이 때문에 시간 날리는 점 없기를 바라면서 포스팅 남깁니다😉