您现在的位置是:网站首页> 编程资料编程资料
pandas实现一行拆分成多行_python_
2023-05-26
317人已围观
简介 pandas实现一行拆分成多行_python_
一行拆分成多行
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() 
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
您可能感兴趣的文章:
相关内容
- R语言绘制条形图及分布密度图代码总结_python_
- 使用pandas两列转换成字典的健和值_python_
- 安装pytorch报错torch.cuda.is_available()=false问题的解决过程_python_
- python opencv背景减去法抠图实现示例_python_
- python数据分析之DateFrame数据排序和排名方式_python_
- 如何利用Python+OpenCV实现简易图像边缘轮廓检测(零基础)_python_
- python的import 机制是怎么实现的_python_
- python pandas遍历每行并累加进行条件过滤方式_python_
- 基于Python实现超级玛丽游戏的示例代码_python_
- Python内置函数详细解析_python_
