gpt4 book ai didi

python - PySpark 根据列名称/字符串条件删除列

转载 作者:行者123 更新时间:2023-12-03 08:59:56 25 4
gpt4 key购买 nike

我想删除包含 banned_columns 列表中任何单词的 pyspark 数据框中的列,并从剩余的列中形成一个新的数据框

banned_columns = ["basket","cricket","ball"]
drop_these = [columns_to_drop for columns_to_drop in df.columns if columns_to_drop in banned_columns]

df_new = df.drop(*drop_these)

banned_columns 的想法是删除以 basketcricket 开头的所有列,以及包含单词 ball 的列 他们名字中的任何地方。

上面是我到目前为止所做的,但它不起作用(因为在新数据框中仍然包含这些列名称)

数据框示例

 sports1basketjump | sports

在上面的列名称示例中,它将删除列 sports1basketjump,因为它包含单词“basket”。

此外,使用 filter 或/和 reduce 函数是否比创建列表和 for 循环更优化?

最佳答案

您的列表理解没有达到您预期的效果。它将返回一个空列表,除非它完全匹配一个字符串。有关如何将子字符串列表与字符串列表进行匹配的答案,请查看 matching list of substrings to a list of strings in Python

df.drop(*cols) 将按您的预期工作。

关于python - PySpark 根据列名称/字符串条件删除列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51364443/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com