pandas实现一行拆分成多行
作者:Jalen备忘录 时间:2021-09-19 16:22:37
一行拆分成多行
1.根据某一列拆分
效果:
代码:
if __name__ == '__main__':
import pandas as pd
df = pd.DataFrame({'Country': ['China,US', 'Japan,EU', 'UK,Australia', 'Singapore,Netherland'],
'Number': [100, 150, 120, 90],
'Value': [1, 2, 3, 4],
'label': list('abcd')})
df_split_row = df.drop('Country', axis=1).join(
df['Country'].str.split(',', expand=True).stack().reset_index(level=1, drop=True).rename('Country'))
2.根据多列拆分
效果:
代码:
if __name__ == '__main__':
import pandas as pd
df = pd.DataFrame({'Code': ['212027'],
'Color': ['blue, pink, yellow'],
'Size': ['12-18M, 2-3Y, 3-4Y']})
split_columns = ['Color', 'Size']
df_convert = df.drop(columns=split_columns, axis=1)
for column in split_columns:
df_convert = df_convert.join(
df[column].str.split(',', expand=True).stack().reset_index(level=1, drop=True).rename(column))
df_convert = df_convert.reset_index(drop=True)
一行转多行、多行转一行
1.测试数据
df = pd.DataFrame([['张世龙', '篮球、羽毛球、英雄联盟'],
['黄邵飞', '兵乓球、足球、下棋'],
['刘苗苗', '绘画、写小说、跑步']])
df.columns = ['姓名','爱好']
2.一行转多行
方法一:
# 1、把渠道字段拆分,分为多列; 2、把行转列成列;3、重置索引,并删除多于的索引;4、更改名称
df_ = df['爱好'].str.split('、',expand=True).stack().reset_index(level=1,drop=True).rename('爱好')
df1 = df.drop(['爱好'], axis=1).join(df_)
方发二:
# 1、将渠道字段拆分;2、调用explode()方法
df['爱好'] = df['爱好'].map(lambda x:x.split('、'))
df1 = df.explode('爱好')
3.多行转一行
#定义拼接函数,并对字段进行去重
def concat_func(x):
return pd.Series({
'爱好':'、'.join(x['爱好'].unique())
})
#分组聚合 + 拼接
df2 = df1.groupby(df1['姓名']).apply(concat_func).reset_index()
来源:https://blog.csdn.net/baidu_30809315/article/details/93748732
标签:pandas,一行,拆分,多行
0
投稿
猜你喜欢
Linux下MySQL整个数据库的备份与还原
2008-12-29 13:20:00
MySQL表设计优化与索引 (九)
2010-10-25 20:16:00
MySQL中用通用查询日志找出查询次数最多的语句的教程
2024-01-13 23:18:00
PHP:微信小程序 微信支付服务端集成实例详解及源码下载
2023-11-14 13:37:55
vue实现登录界面
2024-05-02 16:53:56
Python 字符串处理特殊空格\\xc2\\xa0\\t\\n Non-breaking space
2022-03-09 19:20:16
python分析作业提交情况
2023-07-29 20:59:31
Python使用pyodbc访问数据库操作方法详解
2021-08-02 19:12:29
Vue之插件详解
2024-04-30 10:44:57
良好体验,必须是全方位的
2009-09-24 13:32:00
BootstrapTable+KnockoutJS相结合实现增删改查解决方案(三)两个Viewmodel搞定增删改查
2024-04-28 09:36:56
js兼容的placeholder属性详解
2024-04-25 13:10:15
基于python实现微信模板消息
2022-03-08 01:14:55
利用SQL语句对不同数据库进行高效果分页
2008-11-28 14:44:00
MySQL8.0中binlog的深入讲解
2024-01-16 23:22:02
python程序的组织结构详解
2023-06-14 12:23:09
MySQL 字符串模式匹配 扩展正则表达式模式匹配
2024-01-20 14:47:41
MS SQL7.0的数据迁移到MySQL上的一种方法
2008-11-01 16:59:00
MySQL缓存的查询和清除命令使用详解
2024-01-27 21:23:13
python 解决flask 图片在线浏览或者直接下载的问题
2022-05-15 06:24:57