首先需要对表格数据进行一些处理,问题有
- 需要筛选不合格的数据
- 需要进行两组数据的合并(表头顺序以及内容不完全一致)
- 需要对总表进行拆分
python 二维数组切片 Python高级特性——多维数组切片(Slice) python中的切片
使用Pandas对Excel进行合并操作(concat、append、merge、join) Python3 pandas库(26) 一次读取多个excel文件并合并 python利用pandas读取Excel文件和筛选处理小案例 python-pandas实现简单筛选数据功能 conda env list df.to_excel用法 pandas 将excel一列拆分成多列重新保存 excel如何统计某个范围内满足条件的个数 =COUNTIFS(L1:L2387,“>70” ) Python字符串中增加变量–%方式(格式化输出) pandas DataFrame实现几列数据合并成为新的一列方法 pandas 中delete、drop函数的用法 删除行列 使用pandas把某一列的字符值转换为数字 pandas索引和选择数据
任务:清除批次一、二的数据(清除,调节格式、合并)
- 约束条件df[‘说谎L标准分’]<=70 …
- 最后一个表格 A,B,C… 拆分成每个单元格一个数据
df2=df[“原始作答”].str.split(‘,’,expand=True) df=df.drop(‘原始作答’,axis=1).join(df2)
①(删除不符合条件的数据所在行)
# 删除某些不符合的值的数据(删除某个数据所在行)
# batch1 LFK 标准分约束 “第一批”中相同题目有两种答案的题数+未回答的题数>30的数据
import pandas as pd
df=pd.read_excel('E:\论文\ML\MMPI\MMPI\数据\最终第一批数据重排版.xlsx')
df=df[ (df['说谎L标准分']<=70)&(df['不能确定的题目']<=22)]
df2=df["原始作答"].str.split(',',expand=True)
df=df.drop('原始作答',axis=1).join(df2)
df.to_excel('E:\论文\ML\MMPI\MMPI\数据\ 分割列第一批.xlsx')
# batch2 L\F\K\Q
import pandas as pd
df=pd.read_excel('E:\论文\ML\MMPI\MMPI\数据\最终第二批数据.xlsx')
df=df[ (df['说谎L标准分']<=70)&(df['疑问量表Q粗分']<=22)]
df.to_excel('E:\论文\ML\MMPI\MMPI\数据\ 筛选最终第二批数据.xlsx')
② 根据具体要求(性别,年龄)拆分excel表格
—— 给总表基于性别年龄等分组
import pandas as pd
df=pd.read_excel('E:\论文\ML\MMPI\MMPI\数据\最终数据\男合并.xlsx')
df1=df[(df['年龄']>=14)&(df['年龄']<=29)]
df2=df[(df['年龄']>=30)&(df['年龄']<=44)]
df3=df[(df['年龄']>=45)&(df['年龄']<=59)]
df4=df[(df['年龄']>=60)]
df1.to_excel('E:\论文\ML\MMPI\MMPI\数据\最终数据\第三组\ 男-14-29岁.xlsx')
df2.to_excel('E:\论文\ML\MMPI\MMPI\数据\最终数据\第三组\ 男-30-44岁.xlsx')
df3.to_excel('E:\论文\ML\MMPI\MMPI\数据\最终数据\第三组\ 男-45-59岁.xlsx')
df4.to_excel('E:\论文\ML\MMPI\MMPI\数据\最终数据\第三组\ 男-大于等于60岁.xlsx')
import pandas as pd
df=pd.read_excel('E:\论文\ML\MMPI\MMPI\数据\ 最终合并版.xlsx')
dfm=df[df['性别']=='女']
dff=df[df['性别']=='男']
dfm.to_excel('E:\论文\ML\MMPI\MMPI\数据\ 男合并.xlsx')
dff.to_excel('E:\论文\ML\MMPI\MMPI\数据\ 女合并.xlsx')
③ 把多列合并成一列,并且删除掉除合并列new之外的列
—— 合并删除列
import pandas as pd
df=pd.read_excel('E:\论文\ML\MMPI\MMPI\数据\最终数据\第一组\ 女->35.xlsx')
df['new'] = df['题目1答案选项']
for i in range (2,400):
df['new'] = df['题目%d答案选项' %i]+','+df['new']
for i in range (1,400):
del df['题目%d答案选项' % i]
df.to_excel('E:\论文\ML\MMPI\MMPI\数据\最终数据\第一组\ 000女->35.xlsx')
④ 合并两个excel表格
import pandas as pd
df1=pd.read_excel('E:\论文\ML\MMPI\MMPI\数据\ 分割列第一批.xlsx')
df2=pd.read_excel('E:\论文\ML\MMPI\MMPI\数据\ 筛选最终第二批数据.xlsx')
df = pd.concat([df1, df2], axis=0)
df.to_excel('E:\论文\ML\MMPI\MMPI\数据\ 最终合并版.xlsx')
|