【问题标题】:How to get `train_test_split` to work with a dataframe? [closed]如何让“train_test_split”与数据框一起工作? [关闭]
【发布时间】:2021-05-19 22:48:50
【问题描述】:

我有一个包含 10,999 行的复杂数据框。

我正在尝试运行 xgboost 进行机器学习。

我加载数据并尝试按照教程和 StackOverflow 上发布的解决方案进行拆分:How do I create test and train samples from one dataframe with pandas?

X_train, X_test = train_test_split(df, test_size=0.2)

但这失败了:

TypeError: Expected sequence or array-like, got <class 'pyspark.sql.dataframe.DataFrame'>

但这没有意义,我怎样才能将数据框放入数组中而不会丢失大量有价值的信息?

所以有人建议我尝试 pandas:

pandasDF = df.toPandas
X_train, X_test = train_test_split(pandasDF, test_size=0.2)

但这也失败了:

TypeError: Singleton array array(<bound method PandasConversionMixin.toPandas of DataFrame

如何将此数据框拆分为训练集和测试集?

【问题讨论】:

  • 难道唯一的错误是您忘记了方法调用?所以改用pandasDF = df.toPandas()
  • 确实,我使用了属性而不是方法 :( 现在它可以工作了@VirtualScooter

标签: python apache-spark machine-learning pyspark xgboost


【解决方案1】:

使用此选项:

pandasDF = df.toPandas()

如果需要时间在转换之前使用此配置

spark.conf.set("spark.sql.execution.arrow.enabled", "true")

【讨论】:

  • 关键是我搞砸了,用属性代替了方法
猜你喜欢
  • 1970-01-01
  • 2013-11-20
  • 1970-01-01
  • 2012-04-13
  • 1970-01-01
  • 2012-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多