选择具有多列条件的列的唯一值

2024-09-30 01:23:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个dataframe,其中有些行缺少数据,但有些行已完成,并且与缺少数据的行相同。我希望我的数据帧只有完整的ID,但不排除那些没有任何信息的。例如,在这些相同的ID中,考虑到类型,哪些ID包含更多信息

输入为:

      ID   TYPE   HEIGHT   KG 
 -----------------------------
    MEXU    DOL     NaN    40
    RFGT    DOL     140    47
    RFGT    DOL     NaN   NaN
    RFGT    RET      90   NaN
    OJKU    NaN     NaN   NaN
    TYED    NaN     NaN    80
    TYED    NaN     100    80
    TYED    DOL     100    80
    PJLO    RET     NaN   NaN
    PJLO    DOL     NaN   NaN
    BUAR    NaN     NaN   NaN

我必须在熊猫中使用某种groupbyagg

预期产出:

      ID   TYPE   HEIGHT   KG 
    -----------------------------
    MEXU    DOL     NaN    40
    RFGT    DOL     140    47
    RFGT    RET      90   NaN
    OJKU    NaN     NaN   NaN
    TYED    DOL     100    80
    PJLO    RET     NaN   NaN
    PJLO    DOL     NaN   NaN
    BUAR    NaN     NaN   NaN

Tags: 数据信息idtypenanheightretkg
2条回答

使用^{}函数

我试图复制数据,但只复制了前几行

import pandas as pd

source = {'ID': ['MEXU ','RFGT','RFGT', 'OJKU', 'TYED'], 'TYPE': ['DOL','DOL','DOL', 'RET', 'NaN'], 'HEIGHT': ['NaN', 140, 'NaN', 90, 'NaN'], 'KG': [40, 47, 'NaN', 'NaN', 'NaN']}

df = pd.DataFrame(data=source)


grouped = df.groupby('ID', as_index=False).first()

print(grouped)

印刷品


      ID TYPE HEIGHT   KG
0   MEXU  DOL    NaN   40
1   OJKU  RET     90  NaN
2   RFGT  DOL    140   47
3   TYED  NaN    NaN  NaN

试试^{}

df.drop_duplicates(['ID', 'TYPE'])

输出:

      ID TYPE  HEIGHT    KG
0   MEXU  DOL     NaN  40.0
1   RFGT  DOL   140.0  47.0
3   RFGT  RET    90.0   NaN
4   OJKU  NaN     NaN   NaN
5   TYED  NaN     NaN  80.0
7   TYED  DOL   100.0  80.0
8   PJLO  RET     NaN   NaN
9   PJLO  DOL     NaN   NaN
10  BUAR  NaN     NaN   NaN

相关问题 更多 >

    热门问题