pandas实现一行拆分成多行

 更新时间:2022年05月12日 09:39:56   作者:Jalen备忘录  
这篇文章主要介绍了pandas实现一行拆分成多行方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

一行拆分成多行

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()

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python绘图坐横坐标轴显示方式

    python绘图坐横坐标轴显示方式

    这篇文章主要介绍了python绘图坐横坐标轴显示方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Python常见的错误以及其解决方案

    Python常见的错误以及其解决方案

    这篇文章主要给大家介绍了关于Python常见的错误以及其解决方案的相关资料,学习python任重而道远,对于初学者来说,最难受的就是报错,本文总结了一些常见错误,需要的朋友可以参考下
    2023-08-08
  • pyecharts动态轨迹图的实现示例

    pyecharts动态轨迹图的实现示例

    这篇文章主要介绍了pyecharts动态轨迹图的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • 在Python的Django框架的视图中使用Session的方法

    在Python的Django框架的视图中使用Session的方法

    这篇文章主要介绍了在Python的Django框架的视图中使用Session的方法,包括相关的设置测试Cookies的方法,需要的朋友可以参考下
    2015-07-07
  • python之用Numpy和matplotlib画一个魔方

    python之用Numpy和matplotlib画一个魔方

    这篇文章主要介绍了如何用Numpy和matplotlib画一个魔方,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • python库TextDistance量化文本之间的相似度算法探究

    python库TextDistance量化文本之间的相似度算法探究

    这篇文章主要为大家介绍了python库TextDistance量化文本之间的相似度算法探究,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • Pandas.DataFrame的行名和列名的修改

    Pandas.DataFrame的行名和列名的修改

    本文主要介绍了Pandas.DataFrame的行名和列名的修改,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Python 装饰器@,对函数进行功能扩展操作示例【开闭原则】

    Python 装饰器@,对函数进行功能扩展操作示例【开闭原则】

    这篇文章主要介绍了Python 装饰器@,对函数进行功能扩展操作,结合实例形式分析了装饰器的相关使用技巧,以及开闭原则下的函数功能扩展,需要的朋友可以参考下
    2019-10-10
  • Python爬虫获取基金变动信息

    Python爬虫获取基金变动信息

    这篇文章主要介绍了Python爬虫获取基金变动信息,问基于上一篇文章得内容介绍围绕python的相关资料展开全文,需要的小伙伴可以参考一下
    2022-05-05
  • python使用matplotlib库生成随机漫步图

    python使用matplotlib库生成随机漫步图

    这篇文章主要为大家详细介绍了使用Python的matplotlib库生成随机漫步图,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08

最新评论