pandas 分列成行,pandas 拼接多行
本文主要介绍熊猫把一条线拆成多条线的方式,有很好的参考价值。希望对你有帮助。如有错误或不足之处,请不吝赐教。
00-1010将一行拆分成多行。1.按某列拆分。2.将一行拆分成多行,多行拆分成一行。1.测试数据。2.将一行变成多行。3.将多行变成一行。
目录
一行拆分成多行
效果:
代码:
if __name__==__main__:
进口熊猫作为pd
df=pd。DataFrame({ 国家 : [中国,美国,日本,欧盟,英国,澳大利亚,新加坡,荷兰],
编号 : [100,150,120,90],
值 : [1,2,3,4],
标签 :列表( abcd)})
df_split_row=df.drop(Country ,axis=1)。加入(
df[Country].str.split(,,expand=True)。堆栈()。reset_index(level=1,drop=True)。重命名(“国家”))
1.根据某一列拆分
效果:
代码:
if __name__==__main__:
进口熊猫作为pd
df=pd。data frame({ Code :[ 212027 ],
颜色 : [蓝色,粉色,黄色],
尺寸 :[ 12-18米,2-3岁,3-4岁]})
split_columns=[Color , Size]
df _ convert=df . drop(columns=split _ columns,轴=1)
对于split _ columns:中的列
df_convert=df_convert.join(
df[column].str.split(,,expand=True)。堆栈()。reset_index(level=1,drop=True)。重命名(列))
df _ convert=df _ convert . reset _ index(drop=True)
2.根据多列拆分
一行转多行、多行转一行
Df=pd。DataFrame([[张世龙,篮球,羽毛球,英雄联盟],
[黄,乒乓球,足球,象棋],
[刘苗苗,画画,写小说,跑步]])
Df.columns=[name , hobby]
1.测试数据
方法一:
# 1.将频道字段拆分为多列;2.将行变成列;3.重置索引并删除多个索引;4.更改名称
Df_=df[ hobby ].str.split(,,expand=true)。堆栈()。reset _ index (level=1,drop=true)。重命名(“爱好”)
1=df.drop ([hobby ],axis=1)。加入(df_)
方发二:
# 1.拆分通道字段;2.调用explode()方法
Df[爱好]=df[爱好]。地图(lambda x:x.split(,))
Df1=df.explode(爱好)
2.一行转多行
#定义拼接功能并对字段进行重复数据删除。
def concat_func(x):
返回pd。系列({
爱好 3360 ,。加入(x[爱好]。唯一())
})
#分组聚合拼接
2=DF1.groupby (DF1 [name])。Apply (concat _ func)。重置索引()
以上个人经验,希望给你一个参考,也希望你能支持盛行的IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。