user3668129 :
내가 사용하고 있습니다 python 3.7.6
다음과 같이 나는 사전을 가지고 :
key - string
value - list of strings
값 (목록)와 동일한 크기 아니다 .
예를 들어 :
{'GP': ['col_1', 'col_2', 'col_3', 'col_4'],
'MIN': ['col_1', 'col_2', 'col_3', 'col_4'],
'PTS': ['col_1', 'col_2', 'col_3', 'col_4'],
'FGM': ['col_1', 'col_2', 'col_4'],
'FGA': ['col_2'],
'FG%': ['col_2', 'col_3', 'col_4'],
'3P Made': ['col_2', 'col_3'],
'AST': ['col_2', 'col_3'],
'STL': ['col_2'],
'BLK': ['col_2', 'col_3'],
'TOV': ['col_3']}
나는이 사전을 변환 할 Dataframe
키가 행과 열이 목록 값이며, 내용이 1 또는 0 (행이 목록의 값이 아닌지 따라 다름)입니다 :
col_1 col_2 col_3 col_4
GP 1 1 1 1
MIN 1 1 1 1
PTS 1 1 1 1
FGM 1 1 0 1
FGA 0 1 0 0
FG% 0 1 1 1
3P Made 0 1 1 0
AST 0 1 1 0
STL 0 1 0 0
BLK 0 1 1 0
TOV 0 0 1 0
내가 어떻게 해 ?
이스 르엘 :
사용 MultiLabelBinarizer
과 d.keys()
와 d.values()
사전 :
from sklearn.preprocessing import MultiLabelBinarizer
mlb = MultiLabelBinarizer()
df = pd.DataFrame(mlb.fit_transform(d.values()), index=d.keys(),columns=mlb.classes_)
print (df)
col_1 col_2 col_3 col_4
GP 1 1 1 1
MIN 1 1 1 1
PTS 1 1 1 1
FGM 1 1 0 1
FGA 0 1 0 0
FG% 0 1 1 1
3P Made 0 1 1 0
AST 0 1 1 0
STL 0 1 0 0
BLK 0 1 1 0
TOV 0 0 1 0
팬더 유일한 해결책 만에 slowier Series
, Series.str.join
및 Series.str.get_dummies
:
df = pd.Series(d).str.join('|').str.get_dummies()