HOWTO · Pandas

Pandas 시리즈를 DataFrame으로 변환

Pandas 시리즈를 데이터 프레임으로 변환하는 방법을 소개합니다.

이 페이지의 내용

파생되거나 기존 ‘시리즈’에서 새로운 열을 만드는 것은 기능 엔지니어링에서 강력한 활동입니다. 새로 생성 된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가 제공되지 않으면 모든 데이터 프레임에서 행 병합 또는 통합이 발생합니다.