반응형
Panda Data Frame 사전 목록 작성
다음 Data Frame을 가지고 있습니다.
고객품목1품목2품목3사과 우유 토마토 1개물 오렌지 감자 2개주스 망고칩 3개
각 행의 사전 목록으로 변환하고 싶다.
rows = [
{
'customer': 1,
'item1': 'apple',
'item2': 'milk',
'item3': 'tomato'
}, {
'customer': 2,
'item1':
'water',
'item2': 'orange',
'item3': 'potato'
}, {
'customer': 3,
'item1': 'juice',
'item2': 'mango',
'item3': 'chips'
}
]
Use - 외부로 전환하지 않고 출력을 제공합니다.
In [2]: df.to_dict('records')
Out[2]:
[{'customer': 1L, 'item1': 'apple', 'item2': 'milk', 'item3': 'tomato'},
{'customer': 2L, 'item1': 'water', 'item2': 'orange', 'item3': 'potato'},
{'customer': 3L, 'item1': 'juice', 'item2': 'mango', 'item3': 'chips'}]
사용하다df.T.to_dict().values()다음과 같습니다.
In [1]: df
Out[1]:
customer item1 item2 item3
0 1 apple milk tomato
1 2 water orange potato
2 3 juice mango chips
In [2]: df.T.to_dict().values()
Out[2]:
[{'customer': 1.0, 'item1': 'apple', 'item2': 'milk', 'item3': 'tomato'},
{'customer': 2.0, 'item1': 'water', 'item2': 'orange', 'item3': 'potato'},
{'customer': 3.0, 'item1': 'juice', 'item2': 'mango', 'item3': 'chips'}]
존 골트의 답변의 연장선상에서-
다음 Data Frame의 경우
customer item1 item2 item3
0 1 apple milk tomato
1 2 water orange potato
2 3 juice mango chips
인덱스 값을 포함한 사전 목록을 가져오려면 다음과 같은 작업을 수행할 수 있습니다.
df.to_dict('index')
상위 사전의 키가 인덱스 값인 사전의 사전을 출력합니다.이 특별한 경우,
{0: {'customer': 1, 'item1': 'apple', 'item2': 'milk', 'item3': 'tomato'},
1: {'customer': 2, 'item1': 'water', 'item2': 'orange', 'item3': 'potato'},
2: {'customer': 3, 'item1': 'juice', 'item2': 'mango', 'item3': 'chips'}}
하나의 열만 선택하려는 경우 이 기능이 작동합니다.
df[["item1"]].to_dict("records")
다음 항목은 작동하지 않고 TypeError: unsupported type: 이 생성됩니다.데이터 프레임이 아닌 딕트로 시리즈를 변환하려고 하기 때문이라고 생각합니다.
df["item1"].to_dict("records")
하나의 열만 선택하고 열 이름을 키로 한 딕트 목록으로 변환해야 했고, 공유해야 할 것 같아서 잠시 동안 꼼짝할 수 없었습니다.
행에 걸쳐 반복할 수도 있습니다.
rows = []
for index, row in df[['customer', 'item1', 'item2', 'item3']].iterrows():
rows.append({
'customer': row['customer'],
'item1': row['item1'],
'item2': row['item2'],
'item3': row['item3'],
})
언급URL : https://stackoverflow.com/questions/29815129/pandas-dataframe-to-list-of-dictionaries
반응형
'programing' 카테고리의 다른 글
| 업로드한 파일을 디렉토리에 저장하기 전에 이름을 변경하는 방법 (0) | 2022.09.17 |
|---|---|
| 프로덕션 환경 및/또는 상업적 목적으로 사용할 수 있는 무료 버전의 Java는 무엇입니까? (0) | 2022.09.17 |
| 라라벨:현재 루트명을 취득하는 방법(v5...v7) (0) | 2022.09.17 |
| 사이트에 사진을 업로드하고 저장하는 가장 좋은 방법은 무엇입니까? (0) | 2022.09.17 |
| ubuntu에서 기본 python 버전을 python3으로 설정할 수 없습니다. (0) | 2022.09.17 |