Python 按日期分组行并覆盖NaN值
我有一个以下结构的数据框架,它针对这个问题进行了简化Python 按日期分组行并覆盖NaN值,python,pandas,dataframe,group-by,pandas-groupby,Python,Pandas,Dataframe,Group By,Pandas Groupby,我有一个以下结构的数据框架,它针对这个问题进行了简化 A B C D E 0 2014/01/01 nan nan 0.2 nan 1 2014/01/01 0.1 nan nan nan 2 2014/01/01 nan 0.3 nan 0.7 3 2014/01/02 nan 0.4 nan nan 4 2014/01/02 0.5 nan 0.6 0.8 我这里有一系列的读数,在一天中跨越几个时间戳。B、C、D和E列表示不同的位置。我正在读取的数据被设
A B C D E
0 2014/01/01 nan nan 0.2 nan
1 2014/01/01 0.1 nan nan nan
2 2014/01/01 nan 0.3 nan 0.7
3 2014/01/02 nan 0.4 nan nan
4 2014/01/02 0.5 nan 0.6 0.8
我这里有一系列的读数,在一天中跨越几个时间戳。B、C、D和E列表示不同的位置。我正在读取的数据被设置为在指定的时间戳从某些位置获取数据,并为其他位置填充nan值
我想做的是按时间戳对数据进行分组,我可以使用.groupby命令轻松地进行分组。从那里,我希望分组数据中的nan值被后面行中的有效值覆盖,从而获得以下结果
A B C D E
0 2014/01/01 0.1 0.3 0.2 0.7
1 2014/01/02 0.5 0.4 0.6 0.8
如何实现这一点?使用DataFrameGroupBy.agg尝试df.groupby:
一个简短的版本,感谢MaxU!:
In [537]: df.groupby('A', as_index=False, sort=False).sum()
Out[537]:
A B C D E
0 2014/01/01 0.1 0.3 0.2 0.7
1 2014/01/02 0.5 0.4 0.6 0.8
使用DataFrameGroupBy.agg尝试df.groupby:
一个简短的版本,感谢MaxU!:
In [537]: df.groupby('A', as_index=False, sort=False).sum()
Out[537]:
A B C D E
0 2014/01/01 0.1 0.3 0.2 0.7
1 2014/01/02 0.5 0.4 0.6 0.8
你可以先用熊猫试试
你可以先用熊猫试试
为什么我们需要np.nansum?df.groupby'A',as_index=False,sort=False.sum-应该可以做到…@MaxU Brilliant。我不确定sum是否考虑了nans。我还在学习,所以欢迎你的评论:很好的答案。这里链接到熊猫文档:我认为可以先简单使用:为什么我们需要np.nansum?df.groupby'A',as_index=False,sort=False.sum-应该可以做到…@MaxU Brilliant。我不确定sum是否考虑了nans。我还在学习,所以欢迎你的评论:很好的答案。此处链接到熊猫文档:我认为可以先简单使用:
df.groupby('A', as_index=False).first()
A B C D E
0 1/1/2014 0.1 0.3 0.2 0.7
1 1/2/2014 0.5 0.4 0.6 0.8