Pandas 데이터 프레임을 사전으로 변환
-
to_dict()
함수를 사용하여 Pandas DataFrame에서 사전으로 -
Pandas DataFrame을 List 또는
Series
로 값이있는 사전으로 - Pandas DataFrame을 사전 목록으로
- Pandas 데이터 프레임을 행별 사전으로
- 하나의 열을 키(key)로 사용하여 사전에 데이터 프레임
-
dict()
및zip()
함수를 사용하여 사전에 Pandas DataFrame
이 튜토리얼에서는 인덱스 열 요소를 키로 사용하고 다른 열의 해당 요소를 값으로 사용하여 Pandas DataFrame을 사전으로 변환하는 방법을 소개합니다. 이 기사에서는 다음 DataFrame을 사용합니다.
import pandas as pd
df = pd.DataFrame(
[["Jay", 16, "BBA"], ["Jack", 19, "BTech"], ["Mark", 18, "BSc"]],
columns=["Name", "Age", "Course"],
)
print(df)
출력:
Name Age Course
0 Jay 16 BBA
1 Jack 19 BTech
2 Mark 18 BSc
to_dict()
함수를 사용하여 Pandas DataFrame에서 사전으로
Pandas to_dict()
함수는 DataFrame을 사전으로 변환합니다. 매개 변수는 사전의 형식과 키-값 쌍이 연관되는 방식을 결정합니다. 다음은to_dict()
를 사용하여 DataFrame을 Dictionary로 변환하는 기본적인 예입니다.
import pandas as pd
df = pd.DataFrame(
[["Jay", 16, "BBA"], ["Jack", 19, "BTech"], ["Mark", 18, "BSc"]],
columns=["Name", "Age", "Course"],
)
d1 = df.to_dict()
print(d1)
출력:
{'Name': {0: 'Jay', 1: 'Jack', 2: 'Mark'}, 'Age': {0: 16, 1: 19, 2: 18}, 'Course': {0: 'BBA', 1: 'BTech', 2: 'BSc'}}
출력에서 볼 수 있듯이 열 이름은 키로 변환되고 각 레코드는 값으로 변환되고 인덱스는 키로 사용됩니다.
Pandas DataFrame을 List 또는Series
로 값이있는 사전으로
매개 변수를list
,records
,series
,index
,split
,dict
로to_dict()
함수에 전달하여 최종 사전의 형식을 변경할 수 있습니다. 예를 들어list
와series
를 매개 변수로 전달하면 열 이름이 키로 사용되지만 값 쌍은 각각 목록과 일련의 행으로 변환됩니다. 다음 예제는이를 보여줍니다.
import pandas as pd
df = pd.DataFrame(
[["Jay", 16, "BBA"], ["Jack", 19, "BTech"], ["Mark", 18, "BSc"]],
columns=["Name", "Age", "Course"],
)
d_list = df.to_dict("list")
print(d_list)
d_series = df.to_dict("series")
print(d_series)
출력:
{'Name': ['Jay', 'Jack', 'Mark'], 'Age': [16, 19, 18], 'Course': ['BBA', 'BTech', 'BSc']}
{'Name': 0 Jay
1 Jack
2 Mark
Name: Name, dtype: object, 'Age': 0 16
1 19
2 18
Name: Age, dtype: int64, 'Course': 0 BBA
1 BTech
2 BSc
Name: Course, dtype: object}
Pandas DataFrame을 사전 목록으로
또한 각 행을 별도의 사전으로 사용하여 ‘레코드’를 함수에 전달할 수도 있습니다. 최종 결과는 각 행이 사전으로 포함 된 목록입니다. 예를 들면
import pandas as pd
df = pd.DataFrame(
[["Jay", 16, "BBA"], ["Jack", 19, "BTech"], ["Mark", 18, "BSc"]],
columns=["Name", "Age", "Course"],
)
d_records = df.to_dict("records")
print(d_records)
출력:
[{'Name': 'Jay', 'Age': 16, 'Course': 'BBA'}, {'Name': 'Jack', 'Age': 19, 'Course': 'BTech'}, {'Name': 'Mark', 'Age': 18, 'Course': 'BSc'}]
Pandas 데이터 프레임을 행별 사전으로
그러나 많은 경우 열 이름을 사전의 키로 원하지 않을 수 있습니다. 이러한 상황에서는 index
를 전달하여 DataFrame 색인을 키로 만들 수 있습니다. 다음 코드 스 니펫이이를 보여줍니다.
import pandas as pd
df = pd.DataFrame(
[["Jay", 16, "BBA"], ["Jack", 19, "BTech"], ["Mark", 18, "BSc"]],
columns=["Name", "Age", "Course"],
)
d_index = df.to_dict("index")
print(d_index)
출력:
{0: {'Name': 'Jay', 'Age': 16, 'Course': 'BBA'}, 1: {'Name': 'Jack', 'Age': 19, 'Course': 'BTech'}, 2: {'Name': 'Mark', 'Age': 18, 'Course': 'BSc'}}
하나의 열을 키(key)로 사용하여 사전에 데이터 프레임
그러나 한 열의 요소를 키로 사용하고 다른 열의 요소를 값으로 사용하려면 어떻게해야할까요? 필요한 열을 DataFrame의 인덱스로 만들고.T()
함수를 사용하여 전치하면 가능합니다.
예:
import pandas as pd
df = pd.DataFrame(
[["Jay", 16, "BBA"], ["Jack", 19, "BTech"], ["Mark", 18, "BSc"]],
columns=["Name", "Age", "Course"],
)
d_names = df.set_index("Name").T.to_dict("list")
print(d_names)
출력:
{'Jay': [16, 'BBA'], 'Jack': [19, 'BTech'], 'Mark': [18, 'BSc']}
dict()
및zip()
함수를 사용하여 사전에 Pandas DataFrame
Python dict()
함수는 Pandas DataFrame을 사전으로 변환 할 수도 있습니다. 또한 병렬 반복기를 생성하기 위해 개별 열이있는zip()
함수를 인수로 사용해야합니다. 그런 다음zip()
함수는 각 반복에서 한 행의 모든 값을 산출합니다.
import pandas as pd
df = pd.DataFrame(
[["Jay", 16, "BBA"], ["Jack", 19, "BTech"], ["Mark", 18, "BSc"]],
columns=["Name", "Age", "Course"],
)
d = dict([(i, [a, b]) for i, a, b in zip(df["Name"], df["Age"], df["Course"])])
print(d)
출력:
{'Jay': [16, 'BBA'], 'Jack': [19, 'BTech'], 'Mark': [18, 'BSc']}
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn