快科技1月11日消息,诺基亚又一次宣告死亡,智能手机时代彻底终结。今年初,HMD宣布将推出自有品牌HMD手机,而诺基亚智...
- 首页 > 新闻资讯 > 超经典的Pandas “行列” 转换教程!
点击上图,查看教学大纲
鉴于一直以来,总有人在群里面或者私下问,Python行转列、列转行的问题。基于此,我这里写一篇较全的文章,分享给大家。
为了给大家更加细致的讲述本文,我这里给大家造一些详细的数据。本文看完即学会,黄同学保证的。
列转行
首先我们看一下“列转行”的问题。这里我们利用pandas构造了这样一份数据。
df = pd.DataFrame({ "语文":[ 2, 4],
"数学":[ 6, 8]})
df.index = [ "张三", "李四"]
df
结果如下:
从表中可以看到:语文、数学都在列上面,我们如何将这些列转为行呢?这里有两种方式:
① stack方法
df1 = df.stack.reset_index
df1.columns = [ "姓名", "科目", "成绩"]
df1
结果如下:
② melt方法
由于这个函数参数多一些,我这里给大家先讲一下语法。
id_vars:列转行,不变的那一列;
value_vars:列转行,需要变动的那些列的列名;
var_name:列转为行后,新表的列名;
value_name:列转为行后,新表的值那一列的列明;
id_vars:列转行,不变的那一列;
value_vars:列转行,需要变动的那些列的列名;
var_name:列转为行后,新表的列名;
value_name:列转为行后,新表的值那一列的列明;
首先,我们再看看原来的数据长啥样。
接着,我们进行reset_index操作后,再看看数据长啥样。
我们就是要利用这个数据,完成最终的操作。
df2 = df2.melt(id_vars= 'index',value_vars=[ '语文', '数学'],var_name= "科目",value_name= "成绩")
df2.rename(columns={ "index": "姓名"},inplace= True)
df2
结果如下:
行专列
“行专列”这个需求,大家应该都见过。因为我们只要是用过数据透视表的同学,应该都知道这个需求。
我们在为大家构造一份数据,接着看。
df = pd.DataFrame({ "姓名":[ "张三", "李四", "张三", "李四"],
"科目":[ "语文", "语文", "数学", "数学"],
"成绩":[ 2, 4, 6, 8]})
df
结果如下:
在pandas中,我们使用pivot_table函数,来完成“行转列”的需求。在写代码之前,我先为大家讲解一下这个函数。
pd.pivot_table(data,index= None,columns= None,
values= None,aggfunc= 'mean',
margins= False,margins_name= 'All',
dropna= True,fill_value= None)
其中:
data:相当于Excel中的"选中数据源";
index:相当于上述"数据透视表字段"中的行;
columns:相当于上述"数据透视表字段"中的列;
values:相当于上述"数据透视表字段"中的值;
aggfunc:相当于上述"结果"中的计算类型;
margins:相当于上述"结果"中的总计;
margins_name:相当于修改"总计"名,为其它名称;
data:相当于Excel中的"选中数据源";
index:相当于上述"数据透视表字段"中的行;
columns:相当于上述"数据透视表字段"中的列;
values:相当于上述"数据透视表字段"中的值;
aggfunc:相当于上述"结果"中的计算类型;
margins:相当于上述"结果"中的总计;
margins_name:相当于修改"总计"名,为其它名称;
对应到Excel中,大致如下图:
知道基础后,那么如何完成本文的需求呢?
df1 = pd.pivot_table(df,index = '姓名',columns= '科目',values= '成绩')
df1
# ------------------------------
df1.columns.name = None
df1.index.name = None
df1
结果如下:
今天的内容大致就到这里,你学会了吗?如果还是有点模糊,可能还是函数参数太多导致的,大家下去仔细研究一下函数,即可!
配套视频演示
想查看更多微信群的小伙伴, 可以点击上面导航栏的微信群 或者下面按钮!
点我查看更多微信群
分享
快科技1月11日消息,诺基亚又一次宣告死亡,智能手机时代彻底终结。今年初,HMD宣布将推出自有品牌HMD手机,而诺基亚智...
1月10日消息,据媒体报道,江苏宿迁,刘强东母亲现身老家跟邻里唠家常,笑着展示儿媳妇章泽天买的新衣服。当天刘强东母亲亲自...
快科技1月10日消息,国产著名单机游戏《仙剑奇侠传一》于1995年7月发行,今年迎来30周年之际,官方推出了全新版官方小...
快科技1月10日消息,据“爱玛电动车”官微发文,爱玛与意大利知名设计品牌Rizoma联手设计了“VENICE”概念车。V...
随着中国香水市场的迅速崛起,香水已逐渐从小众品类转变为大众化消费品。数据显示,2023年中国香水市场规模已突破百亿元大关...
年初的Motobaby全球母婴生活馆,95后的朱雪晨正在挑选一双合适的婴儿鞋,送给即将生产的好朋友,“一般新生儿刚出生的...