HOWTO · Pandas

Pandas DataFrame 열을 목록으로 변환

이 기사에서는 Pandas DataFrame 열을 목록으로 변환하는 방법을 소개합니다.

이 페이지의 내용

Python에서 Pandas 데이터프레임으로 작업할 때 데이터프레임의 열을 Python 리스트로 변환해야 할 경우가 많습니다. 이 프로세스는 다양한 데이터 조작 및 분석 작업에 중요할 수 있습니다. 다행히도 Pandas는 이를 달성하기 위한 여러 가지 방법을 제공하므로 필요한 데이터를 리스트 형태로 쉽게 추출할 수 있습니다.

이 기사에서는 Pandas 데이터프레임 열을 Python 리스트로 변환하는 다양한 방법을 살펴보겠습니다. 이름, 생년월일(DOB) 및 급여에 대한 정보가 포함된 샘플 데이터프레임을 사용하여 이러한 방법을 시연하겠습니다.

import pandas as pd

data = {
    "Name": ["James", "Michelina", "Marc", "Bob", "Halena"],
    "DOB": ["1/1/2014", "2/1/2014", "3/1/2014", "4/1/2014", "4/1/2014"],
    "Salary": ["1000", "12000", "36000", "15000", "12000"],
}

df = pd.DataFrame(data, columns=["Name", "DOB", "Salary"])

tolist() 메서드, list() 함수, .values 속성, 리스트 내성이라는 네 가지 방법을 사용하여 이 변환을 수행하는 방법을 살펴보겠습니다.

tolist() 메서드를 사용하여 데이터프레임 열을 리스트로 변환하기

Pandas 데이터프레임의 열은 Pandas Series입니다. 따라서 열을 리스트로 변환해야 할 경우, 데이터프레임의 Series에서 tolist() 메서드를 사용할 수 있습니다. tolist()는 Pandas 데이터프레임의 Series를 리스트로 변환합니다.

아래 코드에서 df['DOB']는 데이터프레임에서 이름이 DOB인 Series, 즉 열을 반환합니다.

tolist() 메서드는 Series를 리스트로 변환합니다.

import pandas as pd

data = {
    "Name": ["James", "Michelina", "Marc", "Bob", "Halena"],
    "DOB": ["1/1/2014", "2/1/2014", "3/1/2014", "4/1/2014", "4/1/2014"],
    "Salary": ["1000", "12000", "36000", "15000", "12000"],
}

df = pd.DataFrame(data, columns=["Name", "DOB", "Salary"])

print("Pandas DataFrame:\n\n", df, "\n")

list_of_single_column = df["DOB"].tolist()

print(
    "the list of a single column from the dataframe\n",
    list_of_single_column,
    "\n",
    type(list_of_single_column),
)

출력:

Pandas DataFrame:

         Name       DOB Salary
0      James  1/1/2014   1000
1  Michelina  2/1/2014  12000
2       Marc  3/1/2014  36000
3        Bob  4/1/2014  15000
4     Halena  4/1/2014  12000 

the list of a single column from the dataframe
 ['1/1/2014', '2/1/2014', '3/1/2014', '4/1/2014', '4/1/2014'] 
 <class 'list'>

list() 함수를 사용하여 데이터프레임 열을 리스트로 변환하기

list() 함수를 사용하여 데이터프레임 열을 리스트로 변환할 수도 있습니다. list()가 받는 것이 무엇인지 주목하세요. 데이터프레임 자체가 아니라 list(df["DOB"])와 같이 선택한 열, 즉 Series입니다. Series를 순회하면 그 값들이 순서대로 나오므로 list()는 열의 값을 정확히 수집합니다.

이 접근 방식을 설명하기 위해 위와 동일한 데이터를 사용하겠습니다.

import pandas as pd

data = {
    "Name": ["James", "Michelina", "Marc", "Bob", "Halena"],
    "DOB": ["1/1/2014", "2/1/2014", "3/1/2014", "4/1/2014", "4/1/2014"],
    "Salary": ["1000", "12000", "36000", "15000", "12000"],
}

df = pd.DataFrame(data, columns=["Name", "DOB", "Salary"])

print("Pandas DataFrame:\n\n", df, "\n")

list_of_single_column = list(df["DOB"])

print(
    "the list of a single column from the dataframe\n",
    list_of_single_column,
    "\n",
    type(list_of_single_column),
)

출력:

Pandas DataFrame:

         Name       DOB Salary
0      James  1/1/2014   1000
1  Michelina  2/1/2014  12000
2       Marc  3/1/2014  36000
3        Bob  4/1/2014  15000
4     Halena  4/1/2014  12000 

the list of a single column from the dataframe
 ['1/1/2014', '2/1/2014', '3/1/2014', '4/1/2014', '4/1/2014'] 
 <class 'list'>

.values 속성을 사용하여 데이터프레임 열을 리스트로 변환하기

이를 달성하는 또 다른 방법은 .values 속성을 사용하는 것입니다.

.values 속성을 사용하여 이 데이터프레임의 ‘Salary’ 열을 Python 리스트로 변환하는 단계를 살펴보겠습니다.

Pandas Series의 .values 속성은 데이터의 NumPy 배열 표현을 반환합니다. 이를 Python 리스트로 변환하려면 .tolist() 메서드를 사용할 수 있습니다. 방법은 다음과 같습니다.

salary_list = df["Salary"].values.tolist()

전체 코드는 다음과 같습니다.

import pandas as pd

data = {
    "Name": ["James", "Michelina", "Marc", "Bob", "Halena"],
    "DOB": ["1/1/2014", "2/1/2014", "3/1/2014", "4/1/2014", "4/1/2014"],
    "Salary": ["1000", "12000", "36000", "15000", "12000"],
}

df = pd.DataFrame(data, columns=["Name", "DOB", "Salary"])

# Convert the 'Salary' column to a list using .values
salary_list = df["Salary"].values.tolist()

print(salary_list)

출력:

['1000', '12000', '36000', '15000', '12000']

이 코드를 실행하면 데이터프레임의 Salary 열이 Python 리스트로 변환되어 salary_list 변수에 저장됩니다.

리스트 내성을 사용하여 데이터프레임 열을 리스트로 변환하기

리스트 내성도 선택한 열을 순회하여 리스트를 만들 수 있습니다. 그 자체로는 list()와 똑같이 값을 하나씩 복사합니다. 내성 형태가 진가를 발휘하는 경우는 리스트를 만들면서 각 값을 변환하거나 필터링하려는 경우입니다.

# Using list comprehension to convert the 'Salary' column to a list
salary_list = [salary for salary in df["Salary"]]

전체 코드는 다음과 같습니다.

import pandas as pd

data = {
    "Name": ["James", "Michelina", "Marc", "Bob", "Halena"],
    "DOB": ["1/1/2014", "2/1/2014", "3/1/2014", "4/1/2014", "4/1/2014"],
    "Salary": ["1000", "12000", "36000", "15000", "12000"],
}

df = pd.DataFrame(data, columns=["Name", "DOB", "Salary"])

# Using list comprehension to convert the 'Salary' column to a list
salary_list = [salary for salary in df["Salary"]]

print(salary_list)

출력:

['1000', '12000', '36000', '15000', '12000']

결론

이 기사에서는 Pandas 데이터프레임 열을 Python 리스트로 변환하는 네 가지 방법, 즉 tolist() 메서드, list() 함수, .values 속성, 리스트 내성을 살펴보았습니다.

일반적인 경우, 즉 열이 있고 그 값을 리스트로 원할 때는 선택한 Series를 tolist()나 list()로 직접 변환하는 것이 간단한 선택입니다. .values 경로는 중간 NumPy 배열을 거쳐 같은 리스트에 도달하고, 리스트 내성은 리스트를 만들면서 값을 변환하거나 필터링하려는 경우에 선택하는 옵션입니다.