我有一个14MB的Excel文件和五个工作表我正在阅读Pandas数据帧,虽然下面的代码有效,但需要9分钟!
有没有人有加快速度的建议?
import pandas as pd
def OTT_read(xl,site_name):
df = pd.read_excel(xl.io,site_name,skiprows=2,parse_dates=0,index_col=0,
usecols=[0,1,2],header=None,
names=['date_time','%s_depth'%site_name,'%s_temp'%site_name])
return df
def make_OTT_df(FILEDIR,OTT_FILE):
xl = pd.ExcelFile(FILEDIR + OTT_FILE)
site_names = xl.sheet_names
df_list = [OTT_read(xl,site_name) for site_name in site_names]
return site_names,df_list
FILEDIR='c:/downloads/'
OTT_FILE='OTT_Data_All_stations.xlsx'
site_names_OTT,df_list_OTT = make_OTT_df(FILEDIR,OTT_FILE)
Run Code Online (Sandbox Code Playgroud) Python 2.7.10
试过熊猫 0.17.1 -- 函数 read_excel
试过 pyexcel 0.1.7 + pyexcel-xlsx 0.0.7 -- 函数 get_records()
在 Python 中使用 Pandas 时,是否可以读取 excel 文件(格式:xls|xlsx)并将包含日期或日期 + 时间值的列保留为字符串,而不是自动转换为datetime.datetime或timestamp类型?
如果使用熊猫这是不可能的,有人可以建议另一种方法/库来读取xls|xlsx文件并将日期列值保留为字符串吗?
对于熊猫解决方案尝试df.info()和结果日期列类型如下所示:
>>> df.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 117 entries, 0 to 116
Columns: 176 entries, Mine to Index
dtypes: datetime64[ns](2), float64(145), int64(26), object(3)
memory usage: 161.8+ KB
>>> type(df['Start Date'][0])
Out[6]: pandas.tslib.Timestamp
>>> type(df['End Date'][0]) …Run Code Online (Sandbox Code Playgroud)