繁体   English   中英

将来自另一个 df 的列作为列插入到另一个 df 中。 卡了几个小时! 与不同的列合并(加入)

[英]insert a column from another df into another df as a column. stucked for hours! merge(join) with different column

这2个df我尝试了从join(它需要一个公共列)到union以及要合并的其他一些代码的不同代码,但是我无法得到我想要的结果,我也直接尝试了

data.join(tdf, how='inner').select('*')
data.join(tdf, how='outer').select('*')

以上两个代码都没有给我一个想要的df。

数据显示()

|_c0|         description|   medical_specialty|        sample_name|       transcription|            keywords|
+---+--------------------+--------------------+-------------------------------------------------------------+
|  1| Consult for lapa...|          Bariatrics|Laparoscopic Gas...|PAST MEDICAL HIST...|bariatrics, lapar...|
|  2| Consult for lapa...|          Bariatrics|Laparoscopic Gas...|"HISTORY OF PRESE...| at his highest h...|
|  3| 2-D M-Mode. Dopp...| Cardiovascular /...|2-D Echocardiogr...|2-D M-MODE: , ,1....|cardiovascular / ...|
|  4|  2-D Echocardiogram| Cardiovascular /...|2-D Echocardiogr...|1.  The left vent...|cardiovascular / ...|

如何将年龄列添加为上述df/的列或如何合并这些dfs

tdf.show()

|age|
+---+
|   |
| 42|
|   |
|   |
| 30|
|   |
|   |

目标:

+---+--------------------+--------------------+-------------------+------------------+----------------------+---+
|_c0|         description|   medical_specialty|        sample_name|      transcription|             keywords|age|
+---+--------------------+--------------------+-------------------------------------------------------------+---+
|  1| Consult for lapa...|          Bariatrics|Laparoscopic Gas...|PAST MEDICAL HIST...|bariatrics, lapar...|   |
|  2| Consult for lapa...|          Bariatrics|Laparoscopic Gas...|"HISTORY OF PRESE...| at his highest h...| 42|
|  3| 2-D M-Mode. Dopp...| Cardiovascular /...|2-D Echocardiogr...|2-D M-MODE: , ,1....|cardiovascular / ...|   |
|  4|  2-D Echocardiogram| Cardiovascular /...|2-D Echocardiogr...|1.  The left vent...|cardiovascular / ...|   |

根据我的理解,您希望根据它们的 row_number 加入两个数据框,因为您的数据包含 row_number 但您的年龄 df 不包含。 所以你可以添加一个行号,然后加入你的 dataframe 像:

tdf = tdf.withColumn('Row_id',f.row_number().over(Window.orderBy(f.lit('a'))))
joined_data = data.join(tdf, data._c0==tdf.Row_id).select('*')

这会将年龄列加入您现有的 dataframe。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM