본문 바로가기
카테고리 없음

DATAFRAME/SERIES 구조 변경 / 타입 변환

by 일단도전하는준 2024. 7. 28.
반응형

데이터프레임 시리즈의 구조 변경은 다양한 형태로 이루어질 수 있습니다. 예를 들어, 시리즈를 데이터프레임으로 변환하거나, 시리즈의 인덱스를 재설정하거나, 시리즈를 피벗하는 등 다양한 작업을 할 수 있습니다. 여기에서는 몇 가지 일반적인 시리즈 구조 변경 작업에 대한 코드를 제공하겠습니다.

1. 시리즈를 데이터프레임으로 변환

import pandas as pd

# 시리즈 생성
series = pd.Series([1, 2, 3, 4], name='value')

# 시리즈를 데이터프레임으로 변환
df = series.to_frame()
print(df)
 

2. 시리즈의 인덱스 재설정

import pandas as pd

# 시리즈 생성
series = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'], name='value')

# 인덱스 재설정
series_reset = series.reset_index()
print(series_reset)

 

3. 시리즈를 피벗하여 데이터프레임 생성

import pandas as pd

# 시리즈 생성
data = {'A': ['foo', 'bar', 'foo', 'bar'], 'B': ['one', 'one', 'two', 'two'], 'C': [1, 2, 3, 4]}
df = pd.DataFrame(data)

# 피벗 테이블 생성
pivot_df = df.pivot(index='A', columns='B', values='C')
print(pivot_df)
 

4. 멀티 인덱스를 가진 시리즈를 데이터프레임으로 변환

import pandas as pd

# 멀티 인덱스를 가진 시리즈 생성
index = pd.MultiIndex.from_tuples([('A', 1), ('A', 2), ('B', 1), ('B', 2)], names=['upper', 'lower'])
series = pd.Series([1, 2, 3, 4], index=index, name='value')

# 시리즈를 데이터프레임으로 변환
df = series.reset_index()
print(df)
 

5. 시리즈를 데이터프레임의 열로 추가

import pandas as pd

# 데이터프레임 생성
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})

# 시리즈 생성
series = pd.Series([7, 8, 9], name='C')

# 시리즈를 데이터프레임의 열로 추가
df['C'] = series
print(df)

6. 시리즈를 데이터프레임의 인덱스로 설정

import pandas as pd

# 데이터프레임 생성
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})

# 시리즈 생성
series = pd.Series([7, 8, 9], name='index')

# 시리즈를 데이터프레임의 인덱스로 설정
df.set_index(series, inplace=True)
print(df)

 

위의 코드 조각들은 Pandas 시리즈를 다양한 방식으로 변환하거나 조작하는 방법을 보여줍니다. 사용하려는 데이터의 구조와 요구 사항에 맞게 적절한 방식을 선택하여 사용할 수 있습니다.

 

DATAFRAME / SERIES 타입 변환

 

Pandas에서는 DataFrame이나 Series의 데이터 타입을 변경하는 다양한 방법을 제공합니다. 여기서는 데이터 타입을 변경하는 몇 가지 방법을 코드로 작성해 보겠습니다.

1. astype() 메서드를 사용하여 데이터 타입 변경

astype() 메서드를 사용하면 DataFrame 또는 Series의 데이터 타입을 손쉽게 변경할 수 있습니다.

DataFrame의 컬럼 타입 변경

import pandas as pd

# 데이터프레임 생성
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4.0, 5.0, 6.0]})

# 컬럼 'A'의 타입을 float으로 변경
df['A'] = df['A'].astype(float)

# 컬럼 'B'의 타입을 int로 변경
df['B'] = df['B'].astype(int)

print(df.dtypes)

Series의 타입 변경

 
import pandas as pd

# 시리즈 생성
series = pd.Series([1, 2, 3])

# 시리즈의 타입을 float으로 변경
series = series.astype(float)

print(series.dtypes)

2. pd.to_datetime()를 사용하여 날짜 타입으로 변경

DataFrame의 컬럼을 날짜 타입으로 변경

import pandas as pd

# 데이터프레임 생성
df = pd.DataFrame({'date_str': ['2023-01-01', '2023-02-01', '2023-03-01']})

# 컬럼 'date_str'을 datetime 타입으로 변경
df['date'] = pd.to_datetime(df['date_str'])

print(df.dtypes)

Series를 날짜 타입으로 변경

import pandas as pd

# 시리즈 생성
series = pd.Series(['2023-01-01', '2023-02-01', '2023-03-01'])

# 시리즈를 datetime 타입으로 변경
series = pd.to_datetime(series)

print(series.dtypes)

3. pd.to_numeric()를 사용하여 숫자 타입으로 변경

DataFrame의 컬럼을 숫자 타입으로 변경

import pandas as pd

# 데이터프레임 생성
df = pd.DataFrame({'A': ['1', '2', '3'], 'B': ['4.0', '5.1', '6.2']})

# 컬럼 'A'를 int 타입으로 변경
df['A'] = pd.to_numeric(df['A'])

# 컬럼 'B'를 float 타입으로 변경
df['B'] = pd.to_numeric(df['B'])

print(df.dtypes)

Series를 숫자 타입으로 변경

import pandas as pd

# 시리즈 생성
series = pd.Series(['1', '2', '3'])

# 시리즈를 int 타입으로 변경
series = pd.to_numeric(series)

print(series.dtypes)

4. pd.Categorical()를 사용하여 범주형 타입으로 변경

DataFrame의 컬럼을 범주형 타입으로 변경

import pandas as pd

# 데이터프레임 생성
df = pd.DataFrame({'A': ['a', 'b', 'a', 'c']})

# 컬럼 'A'를 범주형 타입으로 변경
df['A'] = pd.Categorical(df['A'])

print(df.dtypes)

Series를 범주형 타입으로 변경

import pandas as pd

# 시리즈 생성
series = pd.Series(['a', 'b', 'a', 'c'])

# 시리즈를 범주형 타입으로 변경
series = pd.Categorical(series)

print(series.dtypes)

위의 코드들은 DataFrame과 Series의 데이터 타입을 변경하는 다양한 방법들을 보여줍니다. 필요에 따라 적절한 메서드를 사용하여 원하는 타입으로 변환할 수 있습니다.

반응형