Python 如何将具有相同索引的多行组合在一起,并且每行中只有一个真值?

Python 如何将具有相同索引的多行组合在一起,并且每行中只有一个真值?,python,pandas,dataframe,nan,Python,Pandas,Dataframe,Nan,我有一个熊猫数据框,其形状如下: OPEN_INT PX_HIGH PX_LAST VOL timestamp ticker source 2018-01-01 AAPL NYSE 1 NaN NaN NaN 2018-01-01 AAPL NYSE NaN 2 NaN NaN 2018-01-01 AAPL NYSE NaN

我有一个熊猫数据框,其形状如下:

                          OPEN_INT PX_HIGH PX_LAST VOL
timestamp  ticker source     
2018-01-01   AAPL   NYSE         1      NaN    NaN NaN
2018-01-01   AAPL   NYSE       NaN        2    NaN NaN
2018-01-01   AAPL   NYSE       NaN      NaN      3 NaN
2018-01-01   AAPL   NYSE       Nan      NaN    NaN   4
2018-01-01   MSFT   NYSE         5      NaN    NaN NaN
2018-01-01   MSFT   NYSE       NaN        6    NaN NaN
2018-01-01   MSFT   NYSE       NaN      NaN      7 NaN
2018-01-01   MSFT   NYSE       Nan      NaN    NaN   8
在每个(时间戳、ticker、source)组的每一列中,只有一个值,所有其他值都是Nan,是否有任何方法可以将这些值组合成单行,使其看起来像:

                          OPEN_INT PX_HIGH PX_LAST VOL
timestamp  ticker source     
2018-01-01   AAPL   NYSE         1      2        3   4
2018-01-01   MSFT   NYSE         5      6        7   8
我曾尝试使用
df.groupby(['timestamp','ticker','source']).agg(lambda x:x.dropna()
,但我得到一个错误,说
函数没有减少

使用:

If始终是由
max
min
sum
平均值
聚合的每组仅一个值:

df.groupby(['timestamp', 'ticker', 'source']).max()
df.groupby(['timestamp', 'ticker', 'source']).max()