使用 UDF 删除多列 - python3

Posted

技术标签:

【中文标题】使用 UDF 删除多列 - python3【英文标题】:Drop multiple columns using UDF - python3 【发布时间】:2021-05-25 23:38:12 【问题描述】:

我正在尝试使用创建的函数删除几乎一半的数据帧。请注意,它看起来没有吸引力。

def drop_cols(df):
  df.drop(['scrape_id','last_scraped','description','listing_url','neighbourhood','calendar_last_scraped',
           'amenities','neighborhood_overview', 'picture_url','host_url', 'host_about',
           'host_location','host_total_listings_count','host_thumbnail_url','host_picture_url',
           'host_verifications','bathrooms_text','has_availability','minimum_minimum_nights',
           'maximum_minimum_nights','minimum_maximum_nights','maximum_maximum_nights','minimum_nights_avg_ntm',
           'maximum_nights_avg_ntm','number_of_reviews_l30d','calculated_host_listings_count',
           'calculated_host_listings_count_entire_homes','calculated_host_listings_count_private_rooms',
           'calculated_host_listings_count_shared_rooms'],axis=1)
  return df

调用该函数不会给我任何更改。我仍然有完整的数据框。 有什么想法吗?我认为这是一个基本的缩进问题。

【问题讨论】:

将结果分配回df? 感谢您的意见,萨米。 Inplace = True,继续轴排序我的问题 【参考方案1】:

你需要告诉 drop 方法你正在删除列 inPlace(在同一个 df 中),否则你需要再次声明 df

在您的轴声明 (axis=1) 后添加 inplace = true 并重试。

【讨论】:

我试试看。太棒了,像魅力一样工作! 太好了!如果此答案有助于将其标记为已接受 将在 5 分钟内完成(由于计时器)

以上是关于使用 UDF 删除多列 - python3的主要内容,如果未能解决你的问题,请参考以下文章

以整齐的方式将多列作为分组变量传递给 UDF

Hive UDF 返回多列输出

Pyspark udf 在接受多列作为输入的条件定义上返回一列

Pyspark:在UDF中传递多列以及参数

Java Spark-如何以多列作为参数调用UDF

合并 Spark DataFrame 中的多列 [Java]