要求する
シーン
病院のデータベースから大量の健康診断データが得られますが、健康診断データテーブルでは、各行が特定の人の特定の健康診断の結果を表しています。目的は、各人の診察結果を行として格納することであり、各列は診察項目である。
例
生データ
StuID | タイプ | 一つに | |
---|---|---|---|
0 | 111021 | 数学 | 89 |
1 | 111021 | 英語 | 93 |
2 | 312983 | 英語 | 91 |
3 | 314621 | 英語 | 82 |
4 | 314621 | 数学 | 92 |
5 | 112341 | 数学 | 82 |
目的:次の表に変換します
StuID | 英語 | 数学 | |
---|---|---|---|
0 | 111021 | 93 | 89 |
1 | 312983 | 91 | NaN |
2 | 314621 | 82 | 92 |
3 | 112341 | NaN | 82 |
オプション1
- 具体的なコードは以下の通りです
#将’B'列的类别调整为行。
#1
num = df[~df.duplicated(subset=['StuID'])].loc[:,'StuID'].to_list()
#2
result_df = pd.DataFrame({
'StuID': np.array(num)},columns=['StuID','English','Math'])
#3
for i in df.index:
t = df.loc[i,'Type']
num = df.loc[i,'StuID']
result_df.loc[result_df['StuID'] == num,[t]] = df.loc[i,'Num']
print(result_df)
- 結果