-
问题与解决方法:
- 对原有表格的某个单元格提取替换另一个单元格,进行修改!
- 进行vlookup,完成的结果存到新的表!
- 对新的表格里不需要的列进行删除!得到最终的结果!
- 注意:删除时候,如果目标是留下列4:先删除原表2,3再根据剩下的实际列,删除3,10,即:这是最原先的列4是在现在的列2!
-
具体过程与代码如下:
# import pandas
import pandas as pd
from openpyxl import *
# read csv data
# 读取某个单元格2列13的值:
from openpyxl import load_workbook
path = r'E:/Lachnospira eligens-all/GCMS_L.e All/20210318_All/197/Sheet1.xlsx'
e= load_workbook(path) #打开excel
E= e.active #表示当前活跃的表,本案例中 当前活跃表为sheet1
#也可以使用 E = e.get_sheet_by_name('Sheet1') 来获取工作表1
a = str(E.cell(row=2, column=14).value) # 将excel中 2行13列 对应的数据传给a
#b=E.max_row #读取excel行数
#c=E.max_column #读取excel列数
print(a)# 将上面获取值给单元格 1,7:
wb=load_workbook("E:/Lachnospira eligens-all/GCMS_L.e All/20210318_All/197/Sheet1.xlsx") #打开指定excel表
sheet=wb["Sheet1"] #打开指定的Excel表中的sheet页
sheet.cell(1,8).value=a #修改第二行第三列的数据为hhh
wb.save("E:/Lachnospira eligens-all/GCMS_L.e All/20210318_All/197/Sheet1.xlsx") #保存指定Excel工作表
print(sheet.cell(3,3).value) #同时工作台打印出被修改的单元格值
update=sheet.cell(3,3).value #将修改后的值赋值update
print(update) #update值#### 进行合并 # 1 source table
df1 = pd.read_excel('E:/Lachnospira eligens-all/GCMS_L.e All/20210318_All/197/Sheet1.xlsx')
print(df1)
# 删除制定的列的值:
#df2 = pd.read_csv('G:/GCMS-TABLE/vlooked/SPME-MergedFile1.csv')
filename = r'E:/Lachnospira eligens-all/GCMS_L.e All/20210318_All/197/Sheet1.xlsx'
wb = load_workbook(filename)
ws = wb.active
ws.delete_cols(3,5) #删除第 13 列数据
#ws.delete_rows(3) #删除第 3行数据
ws.delete_cols(4,15) #删除列数据
wb.save(filename)
# 写入到制定单元格
# 2 Blank table
df2 = pd.read_excel('E:/Lachnospira eligens-all/GCMS_L.e All/318WANSHANG/24-SCFAandSPME.xlsx')
Left_join = pd.merge(df1,
df2,
on='Strain',
how='outer')
print(Left_join)
# 3save as excel
df = pd.DataFrame(Left_join)
gfg_csv_data = df.to_excel('E:/Lachnospira eligens-all/GCMS_L.e All/318WANSHANG/24-SCFAandSPME.xlsx', index =False )
#如果将index设置为False 则输出的结果中不会带0,1,2 最左侧的排序
-
表1 sheet1:df1
image.png -
表2 df2:
image.png -
最终得到 表3:
网友评论