我试图在我的dataframe中的两列上使用秩函数。
问题
其中一列包含空白值,这不允许我在排名前做groupby。
ERROR ValueError:长度不匹配:预期轴有1122个元素,新值有1814个元素
 df_source['col1'] = df_source['col1'].apply(lambda \
    x:x.strip()).replace('',np.nan)
 df_source['Rank'] = df_source.groupby(by=['col0','col1']) \
    ['col1'].transform(lambda x: x.rank(na_option='bottom'))
      **Actual:**
        col0   col1
        98630  a
               a
        90211  a
        31111  a
               b
        23323  c
    **Expected**
        col0   col1  Rank
        98630  a      1
               a      2
        90211  a      1
        31111  a      1
               b      1
        23323  c      1发布于 2019-01-25 05:58:24
此代码给出了预期的结果。对于具有空值的列,我试图避免使用groupby函数。
    df['col0'] = df['col0'].replace('', np.nan)
    df_int = df.loc[df['col0'].notnull(), 'col1'].unique()
    df = df[~(df['col0'].isin(df_int) & df['col1'].isnull())]https://stackoverflow.com/questions/54358694
复制相似问题