如何加入DataFrame并获取特定列的最大值?

时间:2017-11-10 12:11:58

标签: python apache-spark pyspark

我有两个PySpark DataFrame df1df2。它们具有相同的列名,但可能具有不同的行数。此外,某些组合可能不存在于其中一个DataFrame中。

df1 =
wpk  ipk  num
1    2    23.4
1    3    45.5
2    1    0.0

df2 =
wpk  ipk  num
1    1    12.0
1    3    40.0
2    1    50.0

我想获得一个新的DataFrame df,它是df1df2外部加入的结果。 df应该具有相同的列,但列num应该是df1df2的最大值。

预期结果是这一个:

wpk  ipk  num
1    1    12.0
1    2    23.4
1    3    45.5
2    1    50.0

1 个答案:

答案 0 :(得分:0)

我不确定这是否适合您的问题,但这将是我如何实现指定的结果。

import pandas as pd

df3 = df1.append(df2).groupby(['wpk','ipk'])['num'].max()