pandas 自动化处理Excel数据

悬崖上的金鱼 / 2023-09-02 / 原文

需求: 如下一份这样的Excel数据  现在需要把学生的学号、姓名分离出来到单独的一列 ,将 测验、讨论、成绩三列转换成数值,并把讨论这列的“-”转换成 0 显示

最后把处理好的内容输出到新的Excel文件!!!

 对应完整的代码和解释如下:

import pandas as pd

df = pd.read_excel(r'E:\\工作内容\\Python数据\\测试数据.xlsx',sheet_name='Sheet1')

# 截取每个值的前3个字符
df['学号'] = df['学生昵称'].str[7:15]

# 去掉每个值的前3个字符并保留后面的字符
df['真实姓名'] = df['学生昵称'].str[15:]

# 将列中的所有'-'替换为0
df['讨论'] = df['讨论'].str.replace('-', '0')

column_as_list = df['讨论'].str.replace('-', '0').tolist()

# 插入一个新列 'new_column' 并为其赋值
df['讨论2'] = column_as_list

# 要转换的列名列表
columns_to_convert = ['测验', '讨论','成绩','讨论2']
# 循环处理每一列
for column in columns_to_convert:
    df[column] = pd.to_numeric(df[column])

# 将 DataFrame 保存到 Excel 文件中
df.to_excel(r'E:\\工作内容\\Python数据\\测试数据2.xlsx', index=False)  # 如果不希望保存索引,请设置 index=False

# 显示数据框的前几行
print(df.head())