Loop를 이용하여 여러가지 데이터 구조를 호출하는데 있어 유용한 함수들을 정리한다.
1. 데이터프레임과 같은 구조일때 유용한 함수로는 "iterrows()" 가 있다.
import pandas as pd
example = pd.read_csv("brics.csv", index_col = 0)
for lab, row in example.iterrows():
print(lab)
print(row)
그러면 다음과 같이 한 행의 여러 열에 대한 상태가 프레임 구조로 나타난다.
변수를 선택해서 출력하고 싶다면 다음과 같이 row에서 명명해서 출력하면 된다.
import pandas as pd
brics = pd.read_csv("brics.csv", index_col = 0)
for lab, row in brics.iterrows():
print(lab + ": " + row["capital"])
그러면 내가 각 행에서 내가 원하는 변수의 값이 나온다.
2. for loop을 사용해 새로운 열 추가
그렇다면 이 데이터프레임에 열을 추가하고 싶다면 어떻게 해야 할까, loop를 사용하여 이런 걸 수행할 수 있다.
import pandas as pd
brics = pd.read_csv("brics.csv", index_col = 0)
for lab, row in brics.iterrows():
# Creating Series on every iteration
brics.loc[lab, "name_length"] = len(row["country"])
print(brics)
그러면 다음과 같은 결과나 나와서 새로운 열인 "name_length"가 생성된 것을 확인할 수 있다.
3. apply()
사실 새로운 변수를 추가(=새로운 열을 추가)하는 것에 for loop을 쓴다는건 비효율적이다. python은 여러 함수를 구비하고 있기 때문에.. 그럼 for loop을 안 쓰고 어떻게 새로운 열을 추가할 수 있냐? 아래와 같이 apply() 함수를 사용하면 된다.
import pandas as pd
brics = pd.read_csv("brics.csv", index_col = 0)
# 새로운 열인 name_length를 만든다. 여기서 country열의 요소들(brics["country"])의 값(len)을
# name_length의 값으로 넣는다.
brics["name_length"] = brics["country"].apply(len)
print(brics)
그러면 다음과 같이 아까 for loop을 써서 만든 brics와 같은 결과가 나옴을 확인할 수 있다.
이건 apply() 사용해서 만든 다른 예제이다. cars["country"] 열의 요소들을 apply()를 통해 값을 넣는다. 이때 넣는 값들은 str.upper 즉 대문자로 바꿔서 넣는다는 의미다.
'코딩&알고리즘 > 코딩' 카테고리의 다른 글
Python - Random Numbers (2) (0) | 2022.03.11 |
---|---|
Python - Random Numbers (1) (0) | 2022.03.11 |