Чтение файлов Excel, сохраненных в папке Jupyter - PullRequest
0 голосов
/ 02 ноября 2018

Я пытаюсь прочитать файл Excel, используя R, который перетащил в папку лаборатории Jupyter (в данном случае ... Tabs.xlsx). Как мне использовать R или Python для чтения в этом файле?

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018
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`. (Вам не нужно учить их, поэтому, если ваши просты и достаточно регулярно ...).

Примечание: openxlsx гораздо менее подвержен ошибкам, чем xlsx, так как он избегает Java. У меня были проблемы с ограничением памяти Java. xlsx -dependent functions got memory errors when the excel files were huge (Gbs). So: use openxslx , avoid xlsx` (Java-зависимость)!

0 голосов
/ 02 ноября 2018

В python вы можете использовать панд, которые имеют встроенную функцию, чтобы сделать это легко:

import pandas as pd
pd.read_excel("my_excel.xlsx", sheet_name="my_sheet_name")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...