栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

pandas按列合并数据_pandas拆分成多列?

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

pandas按列合并数据_pandas拆分成多列?

表格格式

统计代码
import numpy as np
import pandas as pd
df = pd.read_excel("./1.xls") ## 读取表格
df1=df['名称'].str.split('|',expand=True) #按照分隔符拆分名称列
df1=df1.stack()  # 转化为行
df1=df1.reset_index(level=1,drop=True) # 重置索引
df1.name='名称'  # 设置列名
df_new = df.drop(['名称'], axis=1).join(df1) # 联表,得到拓展后的数据
df_new['国内发展好']=df_new['国内发展好'].str.replace(r'[(|(].*[)|)]$','').astype(int) # 正则表达式去掉括号和括号的内容,同时将列转化为int类型
df_new['国外发展好']=df_new['国外发展好'].str.replace(r'[(|(].*[)|)]$','').astype(int)

grouped = df_new.groupby('名称') # 对名称进行分组聚合

df_result=grouped['国内发展好'].agg(np.sum).reset_index() # 开始设置统计结果表
df_result['国外发展好']=grouped['国外发展好'].agg(np.sum).reset_index()['国外发展好']
df_result['总计']=df_result['国内发展好']+df_result['国外发展好']
df_result['国外发展好%']=round((df_result['国外发展好']/df_result['总计'])*100,1)
df_result['国内发展好%']=round((df_result['国内发展好']/df_result['总计'])*100,1)
df_result.to_csv("Q19_您为什么认为其发展得更好.csv",index=False)
df_result
输出结果

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/783147.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号