- DataFrame과 리스트, 딕셔너리, 넘파이 ndarray 상호변환
ndarray를 DataFrame으로 변환하기
array = np.array([[90, 85, 78],[95, 60, 85], [80, 100, 88]])
df_array = pd.DataFrame(array, columns=['A', 'B', 'C'])
print(df_array)
실행 결과

리스트를 DataFrame으로 변환하기
import pandas as pd
lst = [[90, 85, 78],[95, 60, 85], [80, 100, 88]] # 2차원 리스트
df_lst = pd.DataFrame(lst, columns=['A', 'B', 'C']) # columns에 열 이름 입력
print(df_lst)
실행 결과

딕셔너리를 DataFrame으로 변환하기
dic = {
'A': [90, 95, 80],
'B': [85, 60, 100],
'C': [78, 85, 88]
}
df_dic = pd.DataFrame(dic)
print(df_dic)
실행 결과

딕셔너리의 Key 값에는 DataFrame의 열 이름을, Value 값에는 열의 데이터를 입력하면 된다.
DataFrame을 ndarray로 변환하기
array = df_array.values
print(array)
실행 결과

DataFrame객체의 values를 이용하면 ndarray로 변환할 수 있다.
DataFrame을 리스트로 변환하기
lst = df_lst.values.tolist()
print(lst)
실행 결과

tolist()를 이용하여 변환된 ndarray를 리스트로 나타내면 된다.
DataFrame을 딕셔너리로 변환하기
dic = df_dic.to_dict()
print(dic)
실행 결과

DataFrame객체의 to_dict() 메서드를 이용하면 딕셔너리로 변환된다. 괄호 안에 'list'를 넣어주면 리스트형으로 변환된다.
- DataFrame의 열 데이터 생성 및 수정
DataFrame의 []연산자를 통해 데이터셋을 생성하거나 수정할 수 있다.
titanic_df = pd.read_csv('train.csv')
앞에서 다뤘던 타이타닉 데이터를 불러온 것이다.
# SibSp열과 Parch열의 값의 합을 저장한 FamilyNumber열을 생성
titanic_df['FamilyNumber'] = titanic_df['SibSp'] + titanic_df['Parch']
# SibSp열 데이터 수정하기
titanic_df['FamilyNumber'] *= 10
titanic_df
실행 결과

'FamilyNumber'열을 생성하여 'Sibsp'와 'Parch'의 합을 저장하고, 10을 곱하여 열 데이터를 수정한 결과이다. 1행의 'SibSp'와 'Parch'의 합 1의 10배인 10이 'FamilyNumber'열 1행에 저장된 것을 볼 수 있다. 다른 모든 행들도 마찬가지이다.
- DataFrame에서 데이터 삭제하기
데이터를 삭제하고자 할 때는 DataFrame의 drop()메서드를 이용한다. drop() 메서드의 중요한 파라미터는 labels, axis, inplace이다.
labels에는 삭제할 행 또는 열을 입력한다(여러개를 삭제할 때는 리스트로 입력한다).
axis 0은 행 축, 1은 열 축을 의미한다. 따라서 0을 입력하면 행을, 1을 입력하면 열을 삭제한다.
inplace의 값의 default값은 False이다. 이 경우 원본 DataFrame에 데이터를 삭제한 결과를 반영하지 않고, 데이터가 삭제된 새로운 DataFrame을 반환한다. True일 경우 원본 DataFrame에 데이터를 삭제한 결과를 반영하고, 반환값은 None이다.
print('inplace=True로 drop한 후 반환된 값:', titanic_df.drop('FamilyNumber', axis=1, inplace=True))
titanic_df.head(3)
실행 결과

inplace=True 이므로 원본 DataFrame에 위에서 추가했던 FamilyNumber 열이 삭제된 것을 확인할 수 있다.
'머신러닝(MachineLearning) > 판다스(Pandas)' 카테고리의 다른 글
DataFrame 결손 값 처리하기, apply lambda (0) | 2022.07.14 |
---|---|
DataFrame의 정렬, Aggregation, groupby (0) | 2022.07.13 |
DataFrame에서 원하는 데이터 추출하기 (0) | 2022.07.08 |
Index 객체 (0) | 2022.07.07 |
DataFrame으로 데이터 불러오기 (0) | 2022.06.24 |