表格格式
统计代码
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
输出结果