将列表中的 R 数据帧传输到 Python Pandas

Transfer in R dataframe in a list to Python Pandas

我如何将我在 R 列表中保存为数据帧的这 5 个模拟数据集以类似格式(如列表中的 pandas 数据帧)传输到 python?

library(MASS)
library(stats)

generateData<- function(n,p) {
sigma <- diag(p)
sigma <- replace(sigma, sigma == 0, 0.3)
mu= rep(0,nrow(sigma))
X <- mvrnorm(n, mu = mu, Sigma = sigma)
vCoef = rnorm(ncol(X))
vProb =exp(X%*%vCoef)/(1+exp(X%*%vCoef))
Y <- rbinom(nrow(X), 1, vProb)
data= data.frame(cbind(X,Y))
return(data)
}

######################################################
# SIMULATED DATA
######################################################
n <- 100
p <- 50
nsim <- 5
data <- list()

for (k in 1 : nsim ) {
mydata <- generateData(n , p)
data[[k]] <- mydata
}

您可以遍历列表并使用不同的工作表将唯一的数据帧保存到 .xls 文件中。然后在 Python 创建一个列表,使用 pandas 阅读表格,最后将它们附加到列表以获得相同的结构。

所以在 R 中:

library(xlsx)

for(i in seq(length(data))){
    write.xlsx(data[[i]], file="filename.xls", sheetName=paste0("data",i), row.names=F, append=T)
}

在 Python 期间:

import pandas as pd

data = list()
for i in range(5):
    sheet = "data"+str(i+1)
    data.append(pd.read_excel("filename.xls", sheet_name=sheet))