Python PySpark Dataframe删除多列的最佳实践?
假设有人想从数据帧中删除一列。在不创建新的数据帧的情况下,可以实现这一点吗Python PySpark Dataframe删除多列的最佳实践?,python,dataframe,apache-spark,pyspark,Python,Dataframe,Apache Spark,Pyspark,假设有人想从数据帧中删除一列。在不创建新的数据帧的情况下,可以实现这一点吗 df=df.drop(“标签”) 似乎创建一个新的数据帧更安全、更正确,对吗?重复使用上述数据帧可能会遇到什么问题 如果重复使用数据帧是一种不好的做法,那么假设您想要删除多个与模式匹配的列: for col in df.columns: if col.startswith("aux_"): df = df.drop(col) 在这种情况下,每次创建一个新的数据帧似乎不切实际。 最佳做法是什么 如果要删除多个
df=df.drop(“标签”)
似乎创建一个新的数据帧更安全、更正确,对吗?重复使用上述数据帧可能会遇到什么问题
如果重复使用数据帧是一种不好的做法,那么假设您想要删除多个与模式匹配的列:
for col in df.columns:
if col.startswith("aux_"):
df = df.drop(col)
在这种情况下,每次创建一个新的数据帧似乎不切实际。
最佳做法是什么 如果要删除多个列,我认为第一步是识别列,将其保存在列表中,然后执行单个
。删除,类似于:
your_column_list = [col for col in df.columns if col.startswith("aux") ]
df.drop(*your_column_list)
这是根据我对spark dataframe的理解,您不必担心它每次都返回新的dataframe,您在那里所做的只是对dataframe进行转换。您可以对数据帧执行许多转换,只有当您对数据帧执行任何操作时,它才会生成新的数据帧
下面是有关转换与操作的更多信息,
我对标题进行了编辑,使其更加具体,请看一看。并非每次都会创建新的数据框。你的方式很好。