我有数据框
outputDF = myDF.select(F.collect_set("value")).alias("my_values").where(col("ID").isin(['d','f']))
无论如何将它组合成这样:
Date CUSIP Asset Liability
01-01-1990 A 1 NaN
01-01-1990 A Nan 2
02-01-1990 A 3 2
01-01-1990 B Nan 2
01-01-1990 B 1 2
我提出的方法是使用groupby([" CUSIP",Date])。agg(function)
我在其中应用max(nan,3)= 3的函数。
有更简单的方法吗?
答案 0 :(得分:1)
>>> df.groupby(['Date', 'CUSIP']).apply(lambda group: group.ffill().bfill()).drop_duplicates()
Date CUSIP Asset Liability
0 01-01-1990 A 1 2
2 02-01-1990 A 3 2
3 01-01-1990 B 1 2