程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Pandas DataFrame: 行列轉換、一行生成多行,多行合並一行

編輯:Python

@創建於:2022.07.01
@修改於:2022.07.01

1、構建一個樣例數據

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]})

2、一行生成多行【列轉行】

用到pandas的melt方法。

# 一行轉多列
df_c = pd.melt(df, id_vars=['姓名', '班級'], var_name="科目", value_name="得分")
df_c

3、多行合並一行【行轉列】

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()

4、參考鏈接

pandas行轉列、列轉行、以及一行生成多行
pandas如何進行優雅的列轉行、行轉列?
Pandas中Dataframe行轉列


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved