用pandas怎样实现一行拆分成多行,代码是什么
Admin 2022-08-30 群英技术资讯 770 次浏览
这篇文章主要介绍了用pandas怎样实现一行拆分成多行,代码是什么相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇用pandas怎样实现一行拆分成多行,代码是什么文章都会有所收获,下面我们一起来看看吧。效果:


代码:
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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
简介JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式
这篇文章主要介绍了Python中end=和sep=的区别说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
我们在使用Python的过程中,会遇到这种情况:需要将接收的bytes数据转换为整形数,或者是将整形数转换成bytes数据。之前小编介绍过在Python中可以转换为整形数的int函数。本文小编就介绍Python中int与bytes如何相互转换的过程:int.to_bytes()和int.from_bytes()。
先定义一个类:classPoint:def__init__(self,x,y):self x=xself y=y下面我们使用9种方法来生成新的对象:point1=Point(1,2)point2=eval("{}
这篇文章主要介绍了解决numpy数组互换两行及赋值的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008