zenn.skin 무료버전 배포중!
자세히보기

Python/Syntax

[Pandas] DataFrame - 2 (행/열 추가, 값 선택/변경, 전치)

koosco! 2022. 1. 10. 22:20

1. 행/열의 추가

1) 행의 추가

- DataFrame의 loc() 메서드를 이용해 행을 추가

- DataFrame.loc['새로운 행 이름'] = value or List

- value를 전달할 경우 해당 행에 모두 동일한 값이 들어간다

- List를 전달할 경우 행에 값이 차례로 들어간다

- 전달되는 리스트의 개수는 열의 개수와 동일해야 한다

 

① 값의 추가

df = pd.DataFrame([[1, 2, 3, 4, 5],
                 [6, 7, 8, 9, 10],
                 [11, 12, 13, 14, 15]],
                 index=list('xyz'),
                 columns=list('ABCDE'))
df.loc['v'] = 30
print(df)

② 리스트의 추가

df.loc['w'] = [16, 17, 18, 19, 20]
print(df)

2) 열의 추가

- df['새로운 열 이름'] = value or List

- value를 전달할 경우 해당 열에 모두 동일한 값이 들어간다

- List를 전달할 경우 열에 값이 차례로 들어간다

df['F'] = [6, 11, 16, 31, 21]
print(df)

 

2. 행/열의 선택

1) 행의 선택

loc() 메서드를 이용한 이름을 기준으로 선택

- 행의 이름을 전달하면 Series를 반환한다

- 복수의 행을 선택하는 경우 리스트를 loc에 전달한다

- 복수의 행을 선택하는 경우 DataFrame을 반환한다

- 슬라이싱을 사용할 수 있다

    슬라이싱의 마지막 행에 해당하는 행도 포함한다

print(df.loc['x'])

print(df.loc[['x', 'y', 'w']])

print(df.loc['x':'v'])

3행, v행을 포함한다

② iloc을 이용한 인덱스를 기준으로 선택

- 행의 index를 전달하면 Series를 반환한다

- 복수의 행을 선택하는 경우 인덱스 리스트를 loc에 전달한다

- 마찬가지로 복수의 행인 경우 DataFrame을 반환한다

- 슬라이싱을 사용할 수 있다

    슬라이싱의 마지막 행은 포함되지 않는다

print(df.iloc[1])

print(df.iloc[[1, 4]])

print(df.iloc[0: 3])

3행, v행이 포함되지 않는다

 

3. 원소 값의 선택

- 하나의 원소를 선택하는 경우 값을 반환

- 슬라이싱을 이용해 복수의 값을 선택하는 경우 Series 또는 DataFrame을 반환

 

① loc을 이용한 원소값 선택

print(df.loc['x', 'C']) # 3
df.loc['x':'v', 'A']

하나의 열/행인 경우 Series 반환

df.loc['x':'v', 'A':'D']

여러개인 경우 DataFrame 반환

② iloc을 이용한 원소값 선택

print(df.iloc[1, 1]) # 7
print(df.iloc[0:4, 0])

print(df.iloc[0:4, 0:4])

 

4. 행과 열의 전치(Transpose)

- DataFrame의 transpose() 메서드 또는 T를 이용해 행과 열의 순서를 변경할 수 있다

- inplace 파라미터가 없어 값을 바꾸려면 대입 연산을 사용해야 한다

print('변경전')
print(df)
print()

df = df.T
print('변경후')
print(df)
print()

df = df.transpose()
print('원래대로 변경')
print(df)

'Python/Syntax'의 다른글

  • 현재글 [Pandas] DataFrame - 2 (행/열 추가, 값 선택/변경, 전치)

관련글