成都网站建设设计

将想法与焦点和您一起共享

python行转列函数 python将列表列转为行

如何用python实现行列互换?

题主既然问出行列转换这样的问题,那就说明题主的Python功力远远不到家的。行列互换其实在Python中很快捷的就可以实现了。

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:主机域名、虚拟空间、营销软件、网站建设、宝山网站维护、网站推广。

首先,让我们来建立一个矩阵,这里我们使用numpy包下的random包来生成3×3的矩阵。大概的代码如下所示:

import numpy as np

a=np.random.random((3,3))

这样,我们就可以生成一个随机数组成的3×3矩阵。之后我们就可以将这个矩阵进行行列互换了。具体代码也非常的简单,具体如下所示:

b=a.T

如上所示,只需要对a对象进行T操作,就可将我们的数据进行行列转换了。

所以,题主在学习的时候,一定要学会用简单的方法去解决复杂的问题。而不要将自己的问题复杂化,就如同楼上某位同学写的代码那样,明显太复杂了。本来三行代码能够实现的功能,搞得如此纠结。

另外,如果题主想进入数据分析行业,我推荐一本Python的相关书籍给你,这本书可以让你掌握一些常见的数据整理、数据清洗操作。这本书的名字是《利用Python进行数据分析》,该书作者是高效数据分析包Pandas的开发者,对数据分析基本技能的提升作用显著。

如果有什么想与我交流的,欢迎在本题下进行评论。

python行转换成列怎么实现?

可以使用Python字符串内置的替换方法把分隔符“,”替换成‘\r\n’ 换行符即可(Linux、MacOS下换行符为:"\n"):

Python代码实现

iPython下演示

python中行列转换时,行标签没有定义

微信群又双叕有新问题了,如图所示,两个表格的转换。

首先跟大家分享一下我的记忆口诀:行转列逆透视

列转行透视

我们用Excel、Python、SQL分别实现一下上图的要求。

Excel

使用到Excel中的Power Query,只有Excel2016以上的版本才有,注意版本号。

行转列

全选数据数据选项卡自表格/区域

由于要转换的列是由"/"分割的,所以我们需要先拆分列。选中需要拆分的列右键拆分列按分隔符。

选择自定义输入"/"选择每次出现分隔符时确定

选中标题行右键逆透视其他列 也可以多选中值列选择逆透视

删除多于列关闭并上载,完成。

列转行

这边暂且只想到添加辅助列来实现该效果,有更好的方法欢迎在评论区留言。

同样多选进入Power Query界面,添加列自定义列输入"=[值]"确定相当于是复制一列值,列名自定义,自定义公式内的值根据原表列名来。

选中“值”透视列“值列”选择自定义聚合值函数选择不要聚合确定第一步也可以选择“自定义”列,如果这样操作的话,在第三步就要选择"值",这里列名没有起好,请大家看清楚。

选中透视出来的列右键合并列自定义分隔符确定

选中合并后的列右键替换值要查找的列输入"//"确定关闭并上载

完成 。

Python

行转列

import pandas as pd

df = pd.DataFrame([['流浪地球', '科幻/冒险/灾难'], ['唐山大地震', '剧情/亲情/灾难']],

columns=['name', 'type'])

df

# 根据'/'拆分为列表

df['type'] = df.type.str.split("/")

df_new = df.explode('type')

df_new

列转行

df_new.groupby(by='name', as_index=False).agg("/".join)explode()函数在pandas0.25.0之后才支持,除了这个方法俺想不到别的方法了。

SQL

行转列

-- 建表,插入数据DROP TABLE IF EXISTS temp;

CREATE TABLE temp ( name varchar(10), type varchar(20) );

INSERT INTO temp VALUES ('流浪地球', '科幻/冒险/灾难'), ('唐山大地震', '剧情/亲情/灾难');

select * from temp;

SELECT a.name

, substring_index(substring_index(a.type, '/', b.help_topic_id + 1), '/', -1) AS type

FROM temp a

JOIN mysql.help_topic b ON b.help_topic_id length(a.type) - length(replace(a.type, '/', '')) + 1

列转行

用刚刚查询出来的结果我们再创建一个temp2。

DROP TABLE IF EXISTS temp2;

CREATE TABLE temp2

(SELECT a.name , substring_index(substring_index(a.type, '/', b.help_topic_id + 1), '/', -1) AS type FROM temp a JOIN mysql.help_topic b ON b.help_topic_id length(a.type) - length(replace(a.type, '/', '')) + 1);

-- 使用group_concat函数实现列转行拼接SELECT name, GROUP_CONCAT(type SEPARATOR '/') AS type

FROM temp2


网站标题:python行转列函数 python将列表列转为行
网站链接:http://chengdu.cdxwcx.cn/article/hpghhe.html