用pandas怎样实现一行拆分成多行,代码是什么
Admin 2022-08-30 群英技术资讯 266 次浏览
效果:
代码:
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'))
效果:
代码:
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)
df = pd.DataFrame([['张世龙', '篮球、羽毛球、英雄联盟'], ['黄邵飞', '兵乓球、足球、下棋'], ['刘苗苗', '绘画、写小说、跑步']]) df.columns = ['姓名','爱好']
方法一:
# 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('爱好')
#定义拼接函数,并对字段进行去重 def concat_func(x): return pd.Series({ '爱好':'、'.join(x['爱好'].unique()) }) #分组聚合 + 拼接 df2 = df1.groupby(df1['姓名']).apply(concat_func).reset_index()
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
Django加载配置的过程详解,一些朋友可能会遇到这方面的问题,对此在下文小编向大家来讲解一下,内容详细,易于理解,希望大家阅读完这篇能有收获哦,有需要的朋友就往下看吧!
这篇文章主要介绍了Python网络编程之ZeroMQ知识总结,文中有非常详细的代码示例,对正在学习python的小伙伴们有非常好的帮助,需要的朋友可以参考下
这篇文章主要介绍了Python如何存储和读取ASCII码形式的byte数据,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
这篇文章介绍了 Python 列表和字典常踩坑即解决方案,主要针对python列表和字典得一些问题,提出了多种解决方案。需要的小伙伴可以参考一下
我们在Django项目中可能会使用到render()函数,但是很多新手可能不知道render()函数的使用,对此,下面小编就给大家分享一个render()函数的用法,感兴趣的朋友可以看看。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008