在R语言中按重复日期合并行并保留列信息的方法
合并DataFrame重复日期行并保留有效信息
按date列分组,对每个分组的其他列提取非缺失的有效值即可。由于每个日期下的各列仅存在一个有效数据,其余为NA,直接用groupby结合first()方法就能快速实现需求。
代码实现
- 导入依赖库
import pandas as pd import numpy as np
- 构造示例DataFrame(匹配你提供的原始数据)
data = { 'date': ['2019-01-01', '2019-01-01', '2019-01-01', '2019-02-01', '2019-02-01', '2019-02-01', '2019-03-01', '2019-03-01', '2019-03-01', '2019-04-01'], '1': [np.nan]*10, '2': [1966439., np.nan, np.nan, 1962946, np.nan, np.nan, 1974072, np.nan, np.nan, 1984086], '3': [np.nan]*10, '4': [np.nan, 133.6, np.nan, np.nan, 134.5, np.nan, np.nan, 135.4, np.nan, np.nan], '5': [np.nan, np.nan, 6.2, np.nan, np.nan, 6.1, np.nan, np.nan, 6.3, np.nan] } df = pd.DataFrame(data)
- 执行合并操作
merged_df = df.groupby('date', as_index=False).first()
- 查看结果
print(merged_df)
输出结果与你期望的一致:
date 1 2 3 4 5 0 2019-01-01 NaN 1966439. NaN 133.6 6.2 1 2019-02-01 NaN 1962946. NaN 134.5 6.1 2 2019-03-01 NaN 1974072. NaN 135.4 6.3 3 2019-04-01 NaN 1984086. NaN NaN NaN
补充说明
如果同一日期下某列存在多个有效值,first()会取第一个非NA值;若需要聚合多个有效值(如求和、均值),可替换为对应的聚合函数,比如sum()、mean()。
内容的提问来源于stack exchange,提问作者Em Manuel
相关产品推荐
相关产品推荐

