본문 바로가기
Python/Python FAQ

Python 판다스 데이터프레임의 열 또는 행에서 목록을 가져오는 방법은 무엇인가요?, Get list from pandas dataframe column or row?

by 베타코드 2023. 10. 5.
반응형

질문


나는 다음과 같이 엑셀 문서에서 가져온 데이터프레임 df를 가지고 있습니다:

cluster load_date   budget  actual  fixed_price
A   1/1/2014    1000    4000    Y
A   2/1/2014    12000   10000   Y
A   3/1/2014    36000   2000    Y
B   4/1/2014    15000   10000   N
B   4/1/2014    12000   11500   N
B   4/1/2014    90000   11000   N
C   7/1/2014    22000   18000   N
C   8/1/2014    30000   28960   N
C   9/1/2014    53000   51200   N

나는 for루프를 실행하고 각 클러스터마다 엑셀 워크시트를 생성하기 위해 열 1의 내용인 df['cluster']을 리스트로 반환하고 싶습니다.

또한, 전체 열이나 행의 내용을 리스트로 반환하는 것도 가능한가요? 예를 들면,

list = [], list[column1] 또는 list[df.ix(row1)]

답변


판다스 DataFrame 열은 가져올 때 판다스 Series입니다. 이후에는 x.tolist()를 호출하여 이를 Python 리스트로 변환할 수 있습니다. 또는 list(x)로 캐스팅할 수도 있습니다.

import pandas as pd

data_dict = {'one': pd.Series([1, 2, 3], index=['a', 'b', 'c']),
             'two': pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])}

df = pd.DataFrame(data_dict)

print(f"DataFrame:\n{df}\n")
print(f"column types:\n{df.dtypes}")

col_one_list = df['one'].tolist()

col_one_arr = df['one'].to_numpy()

print(f"\ncol_one_list:\n{col_one_list}\ntype:{type(col_one_list)}")
print(f"\ncol_one_arr:\n{col_one_arr}\ntype:{type(col_one_arr)}")

출력 결과:

DataFrame:
   one  two
a  1.0    1
b  2.0    2
c  3.0    3
d  NaN    4

column types:
one    float64
two      int64
dtype: object

col_one_list:
[1.0, 2.0, 3.0, nan]
type:<class 'list'>

col_one_arr:
[ 1.  2.  3. nan]
type:<class 'numpy.ndarray'>
반응형

댓글