一、根据某列值为key,整合其他列值

直接上例子:

import pandas as pd
import numpy as np
df1 = pd.DataFrame({'key': ['b', 'b', 'a', 'c', 'a', 'a', 'b'],'data1': range(7)})
df1


整合,根据key值,对于同一个key值,有多个data1与之对应,将多个data1之间用分隔符\t连接,作为一个元素:

ex_data = df1.groupby(['key'], as_index=True)['data1'].apply(lambda x :'\t'.join(list([str(i) for i in x])))
ex_data

type(ex_data)

pandas.core.series.Series

exx_data = pd.DataFrame(ex_data)
exx_data.columns

Index([‘data1’], dtype=‘object’)

exx_data

exx_data.reset_index(inplace=True)
exx_data

如果此时有其他列的值需要保留

例如:

df1 = pd.DataFrame({'key': ['b','b','a','c','a','a','b'],'data1': [0, 0, 2, 3, 4, 5, 6],'data2': [1, 1, 2, 3, 2, 2, 1]})
df1


现在我们想根据key聚合data1,如果能保证 key 和data2是一一对应的,且我们想保留data2,此时得到:

我们需要对df1去掉data1列然后去重:

df1.drop(['data1'], inplace=True, axis = 1)
df1.drop_duplicates(['key', 'data2'], inplace=True)
df1

将df1 和exx_data进行merge :

df_new = df_ex.merge(df1, on = 'key')
df_new

二、拆分某列值增加多行数据

其实就是一过程的逆过程:

x1 = exx_data['data1'].str.split('\t', expand=True)
x1

x2 = x1.stack()
x2

x3 = x2.reset_index(level = 1, drop = True)
x3

x4 = x3.rename('data_x')
x4

x5 = exx_data.join(x4)
x5

一步到位:

x5 = exx_data.join(data['data1'].str.split('\t', expand=True).stack().reset_index(level=1, drop=True).rename('data_x'))

参考:
https://cloud.tencent.com/developer/ask/28278

pandas根据某列值为key整合其他列值,拆分某列值增加多行数据相关推荐

  1. oracle 三列数值相加,Oracle SQL/PLSQL:按货币拆分和求和值的分层查询

    恐怕你把大家都搞糊涂了.) 虽然你的要求部分难以理解,但我认为如果我必须处理这类任务,我会做一件事.我将编写递归函数,计算从树的任何部分到叶的成本. 以下是与您类似的数据演示: select prod ...

  2. pandas使用groupby函数和cumsum函数计算每个分组内的数值累加值、并生成新的dataframe数据列( cumulative sum of each group in dataframe

    pandas使用groupby函数和cumsum函数计算每个分组内的数值累加值.并生成新的dataframe数据列( cumulative sum of each group in dataframe ...

  3. python的pandas库中如何计算每列出现最多的值_Python Pandas中根据列的值选取多行数据...

    Pandas中根据列的值选取多行数据 # 选取等于某些值的行记录 用 == df.loc[df['column_name'] == some_value] # 选取某列是否是某一类型的数值 用 isi ...

  4. python选取列中数据的范围_Python Pandas中根据列的值选取多行数据

    Pandas中根据列的值选取多行数据 # 选取等于某些值的行记录 用 == df.loc[df['column_name'] == some_value] # 选取某列是否是某一类型的数值 用 isi ...

  5. pandas中set_option的常用设置:显示所有行、显示所有列、控制浮点型精度、每个数据元素的显示字符数、对齐形式等

    pandas中set_option的常用设置:显示所有行.显示所有列.控制浮点型精度.每个数据元素的显示字符数.对齐形式等 #pandas中set_option的常用设置 详细参考pandas API ...

  6. pandas将dataframe中的内容为列表(list)的数据列裂变、拆分为多个新的数据列实战:拆分为多个新的数据列(并指定新数据列的名称)、数据列中的列表(不等长)拆分为多个新的数据列产生NaN

    pandas将dataframe中的内容为列表(list)的数据列裂变.拆分为多个新的数据列实战:拆分为多个新的数据列(并指定新数据列的名称).数据列中的列表(不等长)拆分为多个新的数据列(产生NaN ...

  7. Python pandas,index索引,修改索引,复合索引,将某列设为索引

    demo.py(index索引,修改索引,将DataFrame某列设为索引): # coding=utf-8 import numpy as np import pandas as pddf = pd ...

  8. 【pandas小技巧】拆分某列中数字和单位

    pandas拆分某列中数字和单位 最近有csv文件需要处理,需要拆分里面的数字和单位做下数据的整理 以下是数据格式 想把单位拆分出来,单位有的是亿和万,需要对数据进行下处理 这是可以使用extract ...

  9. pandas使用transpose函数对dataframe进行转置、将dataframe的行和列进行互换(flip the rows and columns in dataframe)

    pandas使用transpose函数对dataframe进行转置.将dataframe的行和列进行互换(flip the rows and columns in dataframe) 目录

  10. pandas自定义设置dataframe每个索引的标签、自定义设置索引的列名称(customize index name and index label)

    pandas自定义设置dataframe每个索引的标签.自定义设置索引的列名称(customize index name and index label) 目录

最新文章

  1. Windows上安装AD域控制器注意事项及常见问题处理办法
  2. 开源应用架构之​Selenium WebDriver讲解
  3. Hadoop安装及eclipse配置
  4. cac会议投稿难度大吗_成考高升专难度大吗?考试通过率怎么样?
  5. python博客项目评论_Python 爬虫入门——小项目实战(自动私信博客园某篇博客下的评论人,随机发送一条笑话,完整代码在博文最后)...
  6. Python入门(04) -- 函数
  7. 【长文详解】T5: Text-to-Text Transfer Transformer 阅读笔记
  8. 基于android的校园二手交易平台的设计
  9. MICCAI 2022 | ASA:用于预训练脑核磁分割的注意力对称自动编码器
  10. 2021计算机夏令营经验分享(西交软院、南开计算机、中南计算机、南京大学计算机、华东师大数据学院、上交电院直博、国防科大计算机、上科大)
  11. Windows下获取群CPU使用率的方法
  12. 【秋招内推】近期互联网公司秋招内推合集
  13. 我的世界梦之边缘5服务器在维护吗,我的世界梦之边缘V 第一个包含动漫CG剧情的RPG服务器...
  14. 基于GEE洪水发生前后的分析
  15. iOS线下分享《RunLoop》by 孙源@sunnyxx
  16. signal函数详细用法
  17. 向上沟通-管理你的上司
  18. 解剖gowitness
  19. Android 拖拽球吸附动画,android可拖动,展示菜单,能自动吸边和半隐藏的悬浮球...
  20. 倒立摆的simulink模型搭建

热门文章

  1. Blue Jeans - POJ 3080(多串的共同子串)
  2. Codeforces Round #FF(255) DIV2
  3. ARM-ELF文件格式与GNU ARM Linker机制
  4. UVa 10400 记忆化搜索
  5. blog转到CNBlog了
  6. 使用hiredis接口(Synchronous API)编写redis客户端
  7. TX2在Turtlebot测试kobuki
  8. 【BZOJ2038】【2009国家集训队】小Z的袜子(hose) 分块+莫队
  9. JS判断是否在微信浏览器打开
  10. Android异步批量下载图片并缓存