读取保存在Jupyter文件夹中的Excel文件

时间:2018-11-02 06:41:26

标签: python r jupyter-notebook

我正在尝试使用我拖到Jupyter Lab文件夹(在这种情况下为... Tabs.xlsx)的R读取excel文件。如何使用R或Python读取该文件?

2 个答案:

答案 0 :(得分:0)

在python中,您可以使用pandas,它具有内置功能,可简化此操作:

import pandas as pd
pd.read_excel("my_excel.xlsx", sheet_name="my_sheet_name")

答案 1 :(得分:0)

require(openxlsx)

# I wrote a function to read-in all sheets of a excel file
# assuming the excel sheets reflect 1 simple data frame each.
# I hope your excel sheets are very simple and don't need skipping
# data or leaving out some areas etc. Otherwise, you have to modify
# or use plain `read.xlsx` from `openxlsx`.
# This function returns a list of data frames 
# (for each sheet 1 data frame)
# the names of the elements of the list being the sheet-titles.

#############################
# read xlsx files to dfs list
#############################

xlsx2df.list <- function(xlsx.path, rowNames = TRUE, colNames = TRUE, ...) {
  wb <- loadWorkbook(xlsx.path)
  sheetNames <- names(wb)
  res <- lapply(sheetNames, function(sheetName) {
    read.xlsx(wb, sheet = sheetName, rowNames = rowNames, colNames = colNames, ...)
  })
  names(res) <- sheetNames
  res
}

dfs <- xlsx2df.list("path/to/my_excel.xlsx")

first.sheet.df <- dfs[[1]] # or dfs[["sheet1-title"]]
second.sheet.df <- dfs[[2]] # ...

我写这是为了不必检查工作表名称是什么 因此,我必须阅读哪张纸。 这是我在工作中最常用的功能之一, 自从我从事生物学工作以来,生物学家一直钟爱excel表格。

此函数通过为您调用openxlsx`函数来节省您的时间。 (您不必学习它们,因此,只要您的表很简单 而且足够定期...)。

注意:openxlsxxlsx更容易出错,因为它避免使用Java。我遇到了Java的内存限制问题。 xlsx -dependent functions got memory errors when the excel files were huge (Gbs). So: use openxslx , avoid xlsx`(依赖Java)!