python 列表多行_Python Pandas list列表数据列拆分成多行的方法实现
1、实现的效果
示例代码:
df=pd.DataFrame({'A':[1,2],'B':[[1,2],[1,2]]})
df
Out[458]:
A B
0 1 [1, 2]
1 2 [1, 2]
拆分成多行的效果:
A B
0 1 1
1 1 2
3 2 1
4 2 2
2、拆分成多行的方法
1)通过apply和pd.Series实现
容易理解,但在性能方面不推荐。
df.set_index('A').B.apply(pd.Series).stack().reset_index(level=0).rename(columns={0:'B'})
Out[463]:
A B
0 1 1
1 1 2
0 2 1
1 2 2
2)使用repeat和DataFrame构造函数
性能可以,但不太适合多列
df=pd.DataFrame({'A':df.A.repeat(df.B.str.len()),'B':np.concatenate(df.B.values)})
df
Out[465]:
A B
0 1 1
0 1 2
1 2 1
1 2 2
或者
s=pd.DataFrame({'B':np.concatenate(df.B.values)},index=df.index.repeat(df.B.str.len()))
s.join(df.drop('B',1),how='left')
Out[477]:
B A
0 1 1
0 2 1
1 1 2
1 2 2
3)创建新的列表
pd.DataFrame([[x] + [z] for x, y in df.values for z in y],columns=df.columns)
Out[488]:
A B
0 1 1
1 1 2
2 2 1
3 2 2
或者
#拆成多于两列的情况
s=pd.DataFrame([[x] + [z] for x, y in zip(df.index,df.B) for z in y])
s.merge(df,left_on=0,right_index=True)
Out[491]:
0 1 A B
0 0 1 1 [1, 2]
1 0 2 1 [1, 2]
2 1 1 2 [1, 2]
3 1 2 2 [1, 2]
4)使用reindex和loc实现
df.reindex(df.index.repeat(df.B.str.len())).assign(B=np.concatenate(df.B.values))
Out[554]:
A B
0 1 1
0 1 2
1 2 1
1 2 2
#df.loc[df.index.repeat(df.B.str.len())].assign(B=np.concatenate(df.B.values)
5)使用numpy高性能实现
newvalues=np.dstack((np.repeat(df.A.values,list(map(len,df.B.values))),np.concatenate(df.B.values)))
pd.DataFrame(data=newvalues[0],columns=df.columns)
A B
0 1 1
1 1 2
2 2 1
3 2 2
到此这篇关于Python Pandas list列表数据列拆分成多行的方法实现的文章就介绍到这了,更多相关Pandas list列拆分成多行内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
python 列表多行_Python Pandas list列表数据列拆分成多行的方法实现相关推荐
- mysql 把一列转多行_Oralce 按分隔符把一列转成多行
1.前言 最近因项目需求,需要把员工的工作组返回给前台,但是数据库是把员工的工作组Id,都存在一个字段内了(以ldquo;逗号 1.前言 最近因项目需求,需要把员工的工作组返回给前台,但是数据库是把员 ...
- pandas一列拆分成多行
前言 冬日游,似水云雪落满头. 莫是谁家少年不知愁. 纵无心,跌入云泥, 相看笑不休! 好久没有女神的信,好久没有和她谈心,怀念她柔情似水的眼睛,是李有为加班夜晚中的星星-- 女神失恋的第33天后 ...
- 单元格内多个姓名拆分成一列_excel将一列数据拆为多个表格-excel:如何将一个单元格拆分成多行或多列?...
如何将一个Excel工作表的数据按一列的关键字拆分成... 工具/材料:Microsoft Office Excel2016版,Excel文档. 1.首先选中Excel文档,双击打开. 2.然后在该界 ...
- pandas使用np.where函数计算返回dataframe中指定数据列包含缺失值的行索引列表list
pandas使用np.where函数计算返回dataframe中指定数据列包含缺失值的行索引列表list(index of rows with missing values in dataframe ...
- 【python】pandas某一列中每一行拆分成多行的方法
在处理数据过程中,常会遇到将一条数据拆分成多条,比如一个人的地址信息中,可能有多条地址,既有家庭地址也有工作地址,还有电话信息等等类似的情况,实际使用数据的时候又需要分开处理,这个时候就需要将这一条数 ...
- pandas使用drop_duplicates函数基于subset参数指定的数据列子集删除重复行、并设置keep参数保留重复行中的最后一个数据行
pandas使用drop_duplicates函数基于subset参数指定的数据列子集删除重复行.并设置keep参数保留重复行中的最后一个数据行 目录
- pandas中将每一行数据拆分成多行的方法
一.应用场景 用pandas处理数据时,我们经常会遇到将一行拆分成多行,或者将一列拆分成多列的方法,今天主要讲第一个问题,第二个问题下次讲.举个例子:我现有的数据如下: 其中TrainData是我需要 ...
- pandas某一列中每一行拆分成多行的方法
在处理数据过程中,常会遇到将一条数据拆分成多条,比如一个人的地址信息中,可能有多条地址,既有家庭地址也有工作地址,还有电话信息等等类似的情况,实际使用数据的时候又需要分开处理,这个时候就需要将这一条数 ...
- 【数据平台】pandas将一列中的文本拆分成多行
1.场景:如下图,要将cont中的字符串分割出词汇并单独成一行 2.一列中的文本拆分成多行的效果: 3.实现方法: 方法一: df=df.drop('cont', axis=1).join(df['c ...
最新文章
- (转)SpringBoot系列—Redis使用
- 修改haproxy配置文件
- jQuery插件 -- Cookie插件
- JAVA进阶教学之(IO流)
- linux启用shell脚本,linux下开机启动shell脚本
- 分页查询超时问题(1)
- 卖设备 免费报价的网站
- Deepin 添加PPA源问题
- mvdr波束形成原理_有了波束赋形这个5G黑科技,让你畅享飞一样的网速
- Redis 持久化 RDB 详解
- 数据分析模型 第六章
- 数据库系统概念第六版课后习题答案-第二章
- java 可达性分析算法_垃圾回收:可达性分析算法、生存还是死亡(两次标记)
- dev chart 绘制图形
- 从行业共生到产业共生——2021 MWC上海展观察
- linux纯黑窗口,Win10 20H1命令提示符窗口引入全黑设计
- 带着问题学 Kubernetes 抽象对象 Service 服务间调用
- 【好记性不如烂笔头】排序算法之归并排序(三)小和问题
- matlab狐狸与野兔数学模型,狐狸与兔子数学模型的论文
- windows查看端口占用情况相关命令