Pandas 시리즈를 DataFrame으로 변환

Sathiya Sarathi 2023년1월30일
  1. pandas.DataFrame()을 사용하여 단일 Pandas SeriesDataFrame으로 변환
  2. pandas.Series.to_frame()을 사용하여 단일 Pandas SeriesDataFrame으로 변환
  3. 여러 Pandas 시리즈를 데이터 프레임으로 변환
Pandas 시리즈를 DataFrame으로 변환

파생되거나 기존 ‘시리즈’에서 새로운 열을 만드는 것은 기능 엔지니어링에서 강력한 활동입니다. 새로 생성 된Series 또는 열은 pandas의 기본 함수를 사용하여 Dataframe으로 변환 할 수 있습니다. 이 기사에서는 Pandas Series를 Dataframe으로 변환하는 방법을 소개합니다.

다음 예제에서는 다음 스 니펫을 사용하여 생성 된 데이터 프레임에 대해 작업합니다.

import pandas as pd
import numpy as np

np.random.seed(0)

df_series = pd.Series(
    np.random.randint(0, 100, size=(10)),
    index=["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"],
)

print(df_series)

출력:

a    44
b    47
c    64
d    67
e    67
f     9
g    83
h    21
i    36
j    87
dtype: int64

pandas.DataFrame()을 사용하여 단일 Pandas SeriesDataFrame으로 변환

Series는 Pandas Series를 인수로 전송하여DataFrame()생성자를 사용하여 Dataframe으로 변환 할 수 있습니다.

import pandas as pd
import numpy as np

np.random.seed(0)

df_series = pd.Series(
    np.random.randint(0, 100, size=(10)),
    index=["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"],
)

print(pd.DataFrame(df_series, columns=["A"]))

출력:

    A
a  81
b  37
c  25
d  77
e  72
f   9
g  20
h  80
i  69
j  79

위에서 볼 수 있듯이 함수의 출력은 Dataframe을 반환합니다.

pandas.Series.to_frame()을 사용하여 단일 Pandas SeriesDataFrame으로 변환

이 함수는 주어진 Pandas Series를 Dataframe으로 변환합니다. 열 이름은name 인수로 설정할 수 있습니다.

import pandas as pd
import numpy as np

np.random.seed(0)

df_series = pd.Series(
    np.random.randint(0, 100, size=(10)),
    index=["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"],
)

print(df_series.to_frame(name="A"))

출력:

    A
a  44
b  47
c  64
d  67
e  67
f   9
g  83
h  21
i  36
j  87

주어진 시리즈에 이름이없는 시나리오가있을 수 있습니다. 이와 같은 상황에서는reset_index()메소드가 유용 할 수 있습니다.

import pandas as pd
import numpy as np

np.random.seed(0)

df_series = pd.Series(
    np.random.randint(0, 100, size=(10)),
    index=["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"],
).rename_axis("index")

print(df_series)
print("\n")
print(df_series.reset_index())

출력:

index
a    44
b    47
c    64
d    67
e    67
f     9
g    83
h    21
i    36
j    87
dtype: int64


  index   0
0     a  44
1     b  47
2     c  64
3     d  67
4     e  67
5     f   9
6     g  83
7     h  21
8     i  36
9     j  87

위에서 볼 수 있듯이 생성 된 데이터 프레임에는 0이라는 새 열이 포함되고 기존 인덱스는 승격 된 열입니다. 0이라는 열은 아래와 같이 reset_index()함수에 제공 할 수있는 name인수를 사용하여 이름을 바꿀 수 있습니다.

import pandas as pd
import numpy as np

np.random.seed(0)

df_series = pd.Series(
    np.random.randint(0, 100, size=(10)),
    index=["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"],
).rename_axis("index")

print(df_series)
print("\n")
print(df_series.reset_index(name="A"))

출력:

index
a    44
b    47
c    64
d    67
e    67
f     9
g    83
h    21
i    36
j    87
dtype: int64


  index   A
0     a  44
1     b  47
2     c  64
3     d  67
4     e  67
5     f   9
6     g  83
7     h  21
8     i  36
9     j  87

여러 Pandas 시리즈를 데이터 프레임으로 변환

위의 예는 단일 Pandas Series를 Dataframe으로 변환하는 기능을 보여줍니다. 여러 개의 ‘시리즈’가 있고 이들을 하나의 단일 데이터 프레임으로 연결해야한다면 어떻게 될까요? 개별 시리즈를 생성 할 때concat()함수를 사용하여 연결하여 데이터 프레임을 생성 할 수 있습니다.

import pandas as pd
import numpy as np

np.random.seed(0)

df_series1 = pd.Series(
    np.random.randint(0, 100, size=(10)),
    index=["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"],
)
df_series2 = pd.Series(
    np.random.randint(40, 100, size=(10)),
    index=["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"],
)
df_series3 = pd.Series(
    np.random.randint(80, 100, size=(10)),
    index=["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"],
)

df_stitched = pd.concat([df_series1, df_series2, df_series3], axis=1)

print(df_stitched)

출력:

    0   1   2
a  44  46  97
b  47  64  85
c  64  64  93
d  67  52  88
e  67  98  89
f   9  41  99
g  83  78  96
h  21  79  99
i  36  63  85
j  87  86  95

pd.concat()함수에는 열을 따라 추가하는 것에 해당하는axis=1 인수가 포함되어 있습니다. axis가 제공되지 않으면 모든 데이터 프레임에서 행 병합 또는 통합이 발생합니다.

관련 문장 - Pandas DataFrame

관련 문장 - Pandas Series