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()