操作Excel常见需求的Python实现
使用pandas解析并操作excel文件
这里主要是实现修改的功能
1.查看原始数据。
Python代码实现:
import pandas as pd path = r'C:\Users\Administrator\Desktop\1.xlsx' target_df = pd.read_excel(path, sheet_name='Sheet1', index_col=0) print(target_df)
参数介绍
pd.read_excel(path, sheet_name='Sheet1', index_col=0)
path:本机文件路径
sheet_name:一个excel文件包含多个sheet时,指定目标sheet
index_col=0:是否需要默认索引,如果不进行参数设置,索引会是0,1,2.....,这里设置为0,将表格第一列作为行索引。(注意:如果将index_col=False不会报错,但是和不设置是相同的效果,输出显示默认索引0,1,2......)
2.假设,目标列为sheet1中的shcool列,模拟修改数据,对目标列进行修改
target_col = target_df.loc[:, 'school'].values.tolist()
targ_col_len = len(target_col)
values = [i for i in range(36)]
if targ_col_len < len(values):
values = values[0:targ_col_len]
target_df['school'] = values
elif targ_col_len > len(values):
# 如果目标列较长,则仅更新前len(values)个元素
target_df.loc[target_df.index[:len(values)], 'school'] = values
else:
target_df['school'] = values
print(target_df)
上述代码考虑了待修改数据与新数据的数据长度问题,并分情况进行了讨论,均可实现。
完整代码:
import pandas as pd
path = r'C:\Users\Administrator\Desktop\1.xlsx'
target_df = pd.read_excel(path, sheet_name='Sheet1', index_col=0)
target_col = target_df.loc[:, 'school'].values.tolist()
targ_col_len = len(target_col)
values = [i for i in range(36)]
if targ_col_len < len(values):
values = values[0:targ_col_len]
target_df['school'] = values
elif targ_col_len > len(values):
# 如果目标列较长,则仅更新前len(values)个元素
target_df.loc[target_df.index[:len(values)], 'school'] = values
else:
target_df['school'] = values
print(target_df)
可以加载本地文件,然后将模拟数据替换为自己的真实数据(列表形式即可),运行无报错。
修改行类似,如果有需求可以评论下,后续添加