@創建於:2022.07.01
@修改於:2022.07.01
import pandas as pd
import numpy as np
df = pd.DataFrame({
'姓名': ['name_A', 'name_B', 'name_C'],
'班級': ['c1', 'c2', 'c2'],
'語文': [90, 60, 70],
'數學': [80, 98, 80],
'英語': [85, 90, 75],
'物理': [92, 63, 76],
'化學': [85,100, 89],
'生物': [87, 91, 80]})
用到pandas的melt方法。
# 一行轉多列
df_c = pd.melt(df, id_vars=['姓名', '班級'], var_name="科目", value_name="得分")
df_c
pd.pivot(df_c, index="姓名", columns="科目", values="得分")
# rename_axis(index=, columns=) 來給坐標軸重命名
pd.pivot(df_c, index="姓名", columns="科目", values="得分").rename_axis(columns=None).reset_index()
上面丟掉了班級,如何增加班級呢?
pd.pivot(df_c, index=["姓名", '班級'], columns="科目", values="得分").rename_axis(columns=None).reset_index()
pandas行轉列、列轉行、以及一行生成多行
pandas如何進行優雅的列轉行、行轉列?
Pandas中Dataframe行轉列