python快速读取存入excel内容
用到了pandas库,实在是有点好用!
1.读取excel
定义一个函数来读取文件,也可以不定义,直接用pd.read_excel进行读取。
import pandas as pd
def get_excel_message(file_name,sheetname):
fileUrl="./files/"+file_name
vehicle_messages = pd.read_excel(fileUrl, sheet_name=sheetname) # 读取文件
return vehicle_messages.values #返回的类型为二维列表
若需要numpy库进行后续的操作,可以直接用np.array进行转换。
import numpy as np
z1=np.array(get_excel_message("vehicle_z_message.xlsx","mainlane1"))
2.写入excel
可以用:
# list_2d可以为list或者是numpy的array。
df = pd.DataFrame(list_2d, columns=['Column1', 'Column2', 'Column3'])
df1=pd.DataFrame(z1)
df2 = pd.DataFrame(z2)
df2 = pd.DataFrame(z3)
excel_file_path='./files/vehicle_z_message.xlsx'
with pd.ExcelWriter(excel_file_path) as writer:
df1.to_excel(writer, sheet_name='mainlane1') # 写入第一个工作表
df2.to_excel(writer, sheet_name='mainlane2') # 写入第二个工作表
df3.to_excel(writer, sheet_name='ramp') # 写入第二个工作表
若要进行行列转换,可以用这个函数进行定义
def get_dataFrame(vehicle_messages:list):
# [vehicle_id, id_lane,vehicle_kind,speed,location]
vehicle_messages_data = {
"id": [row[0] for row in vehicle_messages],
"id_lane": [row[1] for row in vehicle_messages],
"vehicle_kind": [row[2] for row in vehicle_messages],
"speed": [row[3] for row in vehicle_messages],
"location": [row[4] for row in vehicle_messages],
}
return pd.DataFrame(vehicle_messages_data)