python - 对数据进行分组以完成彼此之间的记录

标签 python pandas group-by

我有一个任务,需要清理重复记录的数据,但同时用 nan 填充这些单元格,例如具有相同名称的记录的值:

id          id2      name   other_n        date       country
1.177.002   nan test_name    nan     8 decembre 1981    usa
1.177.002   A   test_name   ALVA        nan             nan 

到目前为止,我尝试了普通的 groupby 但没有得到我预期的结果

tst.groupby('name').mean()
tst.groupby('name').sum()

我正在寻找的结果应该是这样的:

id          id2      name   other_n        date       country
1.177.002   A   test_name    ALVA     8 decembre 1981   usa

最佳答案

运行:

df.groupby('name', as_index=False)\
    .agg(lambda col: col.loc[col.first_valid_index()])\
    .reindex(df.columns, axis=1)

需要最后的重新索引才能将列顺序恢复到原来的样子 它们在源 DataFrame 中排序。否则名称将被移动 到第一名

关于python - 对数据进行分组以完成彼此之间的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60009573/

相关文章:

python - 要求用户在首次登录时更改密码?

python - 根据另一列的值替换 pandas DataFrame 中的值

python - .pypirc 文件的自定义位置

python - 如何基于pandas中的列合并两个数据框

python - 用 Pandas 按组对唯一值求和

python - TypeError: 'zip' 对象在 Python 3.x 中不可调用

python - X-Axis Ticks labels by year 与 X-Axis gridlines by fiscal quarter

Python 分组并计算列中的不同值并创建分隔列表

mysql - SQL:按多个限制分组

mysql - 按选择结果组添加排名列