Pandas 시리즈를 DataFrame으로 변환
-
pandas.DataFrame()
을 사용하여 단일 PandasSeries
를DataFrame
으로 변환 -
pandas.Series.to_frame()
을 사용하여 단일 PandasSeries
를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 Series
를DataFrame
으로 변환
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 Series
를DataFrame
으로 변환
이 함수는 주어진 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 DataFrame 열 헤더를 목록으로 가져 오는 방법
- Pandas DataFrame 열을 삭제하는 방법
- Pandas 에서 DataFrame 열을 Datetime 으로 변환하는 방법
- Pandas DataFrame에서 float를 정수로 변환하는 방법
- 한 열의 값으로 Pandas DataFrame 을 정렬하는 방법
- Pandas 그룹 및 합계를 집계하는 방법