gpt4 book ai didi

apache-spark - 使用 pyspark 中的列索引删除同名列

转载 作者:行者123 更新时间:2023-12-02 00:35:31 25 4
gpt4 key购买 nike

这是我的数据框,我正在尝试使用索引删除具有相同名称的重复列:

df = spark.createDataFrame([(1,2,3,4,5)],['c','b','a','a','b'])
df.show()

输出:

+---+---+---+---+---+
| c| b| a| a| b|
+---+---+---+---+---+
| 1| 2| 3| 4| 5|
+---+---+---+---+---+

我得到了数据帧的索引

col_dict = {x: col for x, col in enumerate(df.columns)}
col_dict

输出:

{0: 'c', 1: 'b', 2: 'a', 3: 'a', 4: 'b'}

现在我需要删除具有相同名称的重复列名

最佳答案

没有使用索引删除列的方法。实现此目的的一种方法是重命名重复的列,然后删除它们。

以下是您可以调整的示例:

df_cols = df.columns
# get index of the duplicate columns
duplicate_col_index = list(set([df_cols.index(c) for c in df_cols if df_cols.count(c) == 2]))

# rename by adding suffix '_duplicated'
for i in duplicate_col_index:
df_cols[i] = df_cols[i] + '_duplicated'

# rename the column in DF
df = df.toDF(*df_cols)

# remove flagged columns
cols_to_remove = [c for c in df_cols if '_duplicated' in c]
df.drop(*cols_to_remove).show()

+---+---+---+
| c| a| b|
+---+---+---+
| 1| 4| 5|
+---+---+---+

关于apache-spark - 使用 pyspark 中的列索引删除同名列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59398215/

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