python - 如何隐藏/排除相对于另一个表的数据框列

标签 python apache-spark dataframe pyspark

我需要隐藏相对于另一个数据框/表的几列,其中包含需要隐藏的列的列表。

df

+------+----------+-------+---+---+------+----+----+----+
|Gender| Mobilenum|address|age| id|id_row|name|role|unit|
+------+----------+-------+---+---+------+----+----+----+
|     M|  96226126| SDF-03| 24|101|     1| ash| SSE| DNA|
|     M| 961267126| DSR-09| 24|102|     2|sony|  TA| DNA|
|     M|  96226126| DDD-09| 24|103|     3|zoro|  PM| DNA|
|     M|3962267126| DFG-07| 24|104|     4| max|  SM| DNA|
|     M| 902267126| ASC-09| 24|105|     5| ben| VPM| DNA|
+------+----------+-------+---+---+------+----+----+----+

df_col

+---------+
|   column|
+---------+
|   id_row|
|Mobilenum|
|  address|
|      age|
|   Gender|
+---------+

这里我需要隐藏 df 中相对于 df_col 的列

预期输出

+---+----+----+----+
| id|name|role|unit|
+---+----+----+----+
|101| ash| SSE| DNA|
|102|sony|  TA| DNA|
|103|zoro|  PM| DNA|
|104| max|  SM| DNA|
|105| ben| VPM| DNA|
+---+----+----+----+

最佳答案

尝试下面的代码。

c1_L = df_col.rdd.collect()
c1_L1 = [x.column for x in c1_L]
c_L = df.columns
final_df = df.select([x for x in c_L if x not in c1_L1])
final_df.show()

输出将是

+---+----+----+----+
| id|name|role|unit|
+---+----+----+----+
|101| ash| SSE| DNA|
|102|sony|  TA| DNA|
|103|zoro|  PM| DNA|
|104| max|  SM| DNA|
|105| ben| VPM| DNA|
+---+----+----+----+ 

关于python - 如何隐藏/排除相对于另一个表的数据框列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48556872/

相关文章:

python - 如何合并 Pandas 中的四个表?

hadoop - spark 独立模式下 50-60 gb 的数据

Python:根据计数条件删除行

python - 对 Pandas 数据框中的所有值求和的最佳方法是什么?

r - setkey 和 := operator, 数据表,R

python - 使用迭代从 numpy 数组中删除元素

python - 在 python 中运行 shell 命令并读取输出

javascript - Python Selenium 中的 Firefox : driver.execute_script 尝试使用 JQuery 删除文本字符给出 "SecurityError: The operation is insecure"

hadoop - Spark - 寻找重叠值或寻找共同 friend 的变体

java - 向 Hadoop/Spark 添加自定义代码——压缩编解码器