DataFrame的几列数据合并成为一列
DataFrame的几列数据合并成为一列
1.1 方法归纳
1.2 .str.cat函数详解
1.2.1 语法格式:
1.2.2 参数说明:
1.2.3 核心功能:
1.2.4 常见范例:
DataFrame的几列数据合并成为一列
1.1 方法归纳
使用 + 直接将多列合并为一列(合并列较少);
使用pandas.Series.str.cat方法,将多列合并为一列(合并列较多);
范例如下:

dataframe["newColumn"] = dataframe["age"].map(str) + dataframe["phone"] + dataframe["address”]
#或者
dataframe["newColumn"] = dataframe["age"].map(str).str.cat([dataframe["phone"],dataframe["address”]],sep='-',na_rep='?')

注意事项:

参与合并的列的数据类型必须为str类型,int和float等数值类型需先转化为str;
参与合并的列的长度必须相同(即:行数),否则报错,但使用pandas.Series.str.cat方法,可通过指定参数join={‘left’, ‘right’, ‘outer’, ‘inner’},实现长度不相等的列合并;
参与合并的列的各行元素均不为NaN,否则,只要有一列的对应行元素为NaN,则合并结果中该行将为NaN,但使用pandas.Series.str.cat方法,可通过指定参数na_rep=’-’,将各列中缺失行元素填充为‘-’,从而保留合并列的所有行元素;
1.2 .str.cat函数详解
1.2.1 语法格式:

# pandas.Series.str.cat语法如下:
Series.str.cat(others=None, sep=None, na_rep=None, join=None)

1.2.2 参数说明:
others : 准备合并的字符串列表,其数据类型可以为:Series, Index, DataFrame, np.ndarrary(N元数组) or list-like(类似列表)
备注: 由于默认join=None,所以欲合并的两个(多个)字符串列表必须具有相同的长度,否则需设置参数join= {‘left’, ‘right’, ‘outer’, ‘inner’},来控制多个字符串列表的合并方式。
(1)如果others=None(即:字符串列表df[col_1]不与其他字符串列表合并),结果将不传递其他值,而是将df[col_1]的所有值都连接成一个字符串;(详见范例1-1)
(2)如果others≠None(即:指定了与字符串列表df[col_1]合并的其他字符串列表df[col_2]),结果将用分隔符把df[col_1]与df[col_2]对应的行值连接在一起, 返回Series。(详见范例1-2)
sep:合并结果中不同元素/列之间的分隔符。默认情况下,使用空字符串’ ’ 。
na_rep:为所有缺失值插入的内容,其数据类型可以为:str或None,默认na_rep=None
备注:
(1)如果na_rep=None,则多个合并列中只要有一列的对应行元素为NaN,合并结果中该行元素将为NaN;
(2)如果na_rep=‘str’(str需自定义),则合并列中各缺失行元素将被填充为‘str’,合并结果将保留合并列的所有行元素;
join :确定连接方式,其可能的取值为:{‘left’, ‘right’, ‘outer’, ‘inner’},默认join=None

1.2.3 核心功能:
将Series中的多个字符串[‘a’, ‘b’, ‘c’]拼接为一个字符串’a b c’(字符串拼接)
将DataFrame中的两(多)列df[col_1]和df[col_2]合并为一列(多列合并)
备注: pandas.Series.str.cat仅适用于str类型的数据,int和float等数值型需先转化为str型,才可调用此方法。
int型转为str的方法:
1、df[‘Price’]=df[‘Price’].map(lambda x: str(x))
2、df[‘Price’]=df[‘Price’].map(str)
3、df[‘Price’]=df[‘Price’].astype(‘str’)
若要同时将多列合并为一列,需引入列表list来指定准备合并的列,例如:
df[col_1].str.cat([df[col_2],df[col_3],df[col_4]],sep=’-’)

1.2.4 常见范例:

import numpy as np
import pandas as pd
#创建原始数据
s=pd.Series(['a','b',np.nan,'d'])
>>>
s
0      a
1      b
2    NaN
3      d
# other=None时,调用s.str.cat(),可将series转为用分隔符sep分隔的字符串,缺失项将被省略
s1=s.str.cat(sep=' ')
>>>
s1
'a b d'
# other=None时,指定na_rep='?',结果将保留原series中的缺失项,并用?代替
s2=s.str.cat(sep=' ',na_rep='?')
>>>
s2
'a b ? d'
# other≠None时,调用s.str.cat(),可将两个字符串列表df[col_1]与df[col_2]合并为一列,结果用分隔符sep分隔各项元素,由于默认na_rep=None,故合并时若df[col_1]与df[col_2]的对应行元素有一个为NaN,则合并后该行元素值将为None,结果返回Series
s3=s.str.cat(['A','B','C','D'],sep=',')
>>>
s3
0    a,A
1    b,B
2    NaN
3    d,D
#  other≠None时,调用s.str.cat(),可将两个字符串列表df[col_1]与df[col_2]合并为一列,指定na_rep='-',故合并结果将保留df[col_1]与df[col_2]的所有行,且将df[col_1]与df[col_2]的缺失项填充为‘-’
s4=s.str.cat(['A','B','C','D'],sep=',',na_rep='-')
>>>
s4
0    a,A
1    b,B
2    -,C
3    d,D
# 欲合并的字符串列表df[col_1]与df[col_2]的索引不同时,需指定参数join,确定连接方式
t=pd.Series(['d','a','e','c'],index=[3,0,4,2])
s_1=s.str.cat(t,join='left',na_rep='-')
>>>
s_1
0    aa
1    b-
2    -c
3    dd
s_2=s.str.cat(t,join='outer',na_rep='-')
>>>
s_2
0    aa
1    b-
2    -c
3    dd
4    -e
s_3=s.str.cat(t,join='inner',na_rep='-')
>>>
s_3
0    aa
2    -c
3    dd
s_4=s.str.cat(t,join='right',na_rep='-')
>>>
s_4
3    dd
0    aa
4    -e
2    -c

dataframe多列合并成一列相关推荐

  1. pandas多列合并成一列

    前言 一入数据深似海,从此头发是路人.作为一个半路出家的学生,小弟当初是想做一名开发的,然而阴差阳错下,解除了数据分析这个工作,从此便爱上了这个让我秃头的行业(虚伪的说.) 数据分析有四个步骤,数据获 ...

  2. java怎么写合并列sql_SQL STUFF函数 拼接字符串 多列 合并成一列 转

    关于和并列的 要这种效果. create table tb(idint, value varchar(10)) insert into tbvalues(1,'aa') insert into tbv ...

  3. 如何将SQL查询出的两列合并成一列显示,并用逗号隔开

    如何将SQL查询出的两列合并成一列显示,并用逗号隔开 先给出一个表 DROP TABLE IF EXISTS `apps`; CREATE TABLE `apps` (`id` int NOT NUL ...

  4. Oracle 将多列合并成一列

     对于下述表 create table reservation( reid varchar2(55) not null, rid varchar2(5), gid number(18), rtyp ...

  5. excel多列合并成一列加符号_Excel中如何将每行空格数据隔开为多列,以及如何合并多列数据为一列...

    投稿/科研合作:daixjdoctor@126.com 联系我们:137704924或372699348 群1-5:科研讨论.文献汇报群 网站:http://www.sleep-brain.com/ ...

  6. excel多列合并成一列加符号_Excel多列变(合并)一列的方法详解

    文章介绍两种excel多列变一列的方法来实现excel 多列合并一列的效果. 下图所示的excel多列变一列:将A:D列的数据变为F列的效果.如何实现这样的excel 多列合并一列呢?介绍两种exce ...

  7. 如何将dataframe数据类型某两列合并成一列

    1.目的:将字段的"y"字段与date字段合并为一列 2.数据读取并展示 3.map()函数作用 将序列中的每一个元素,输入函数,最后将映射后的每个值返回合并,得到一个迭代器. 3 ...

  8. SQL——将两列合并成一列

    将两列合并连接成一列,需要注意的是列的格式必须是NVARCHAR或者VARCHAR类型 1 SELECT ','+Convert(NVARCHAR(30), call_uuid, 0 ) +','+a ...

  9. Excel函数——OFFSET函数将多列合并成一列

    最近遇到一个问题,如图所示,每个表的字段分别一列展示,不同表有公共字段,也有独有的字段,现想统计这些表一共涉及到哪些字段.基本思路就是将这些表的字段合并为一列再去重.因为涉及到70多列,复制粘贴比较耗 ...

最新文章

  1. WEEX 报错 TypeError: Converting circular structor to JSON 的解决方法
  2. c语言是字符串123变112233,Objective C学习第四节:OC里面的字符串和数值
  3. 基于LSTM的股票价格预测(完整金融类代码)
  4. dozer bean_使用Dozer框架进行Bean操作
  5. SQLSERVER使用密码加密备份文件以防止未经授权还原数据库
  6. MVC学习笔记----缓存
  7. maven的下载与安装教程(超详细)
  8. [转] 你没看过的囧人囧事大集合
  9. 计算机2.0培训心得,信息技术应用能力提升培训心得体会两篇
  10. 更新驱动后计算机不能开机,(图文)Win10更新显卡驱动后无法开机进入系统
  11. html图片自适应裁剪,html 图片裁剪 图片固定高度 图片自适应。图片完美适配
  12. 成长是一个时辰一个时辰熬出…
  13. 云服务器怎么划分虚拟主机,云服务器 划分虚拟主机
  14. Python语言—爬虫之旅
  15. 区块链---双花问题
  16. 有趣的8086汇编小程序
  17. CATalyst——针对末级缓存侧信道攻击的防御技术
  18. 倍福---MC_ReadParameter读取参数
  19. python小点心--判断操作系统类型
  20. ArcMap中使用arcpy进行网格截图

热门文章

  1. 力扣每日一题——独一无二出现的次数
  2. 2022-2028年中国铝工业投资分析及前景预测报告(全卷)
  3. 2022-2028年中国氟橡胶产业竞争现状及发展前景分析报告
  4. Go 知识点(08) — 对未初始化的 channel 进行读写操作
  5. 【J2SE】java概述
  6. 【spring】spring基于xml的声明式事务控制
  7. 将编译器pass添加到Relay
  8. 处理器解决物联网和人工智能的融合
  9. 2021年大数据Spark(二十六):SparkSQL数据处理分析
  10. Android 计时器 Chronometer