我有一个包含ID列和一些特征列的DataFrame。我想查看每列值有多少唯一的ID。以下代码可行,但是我想知道是否有更好的方法来替代to_frame().unstack().unstack()部分,该部分将.describe()系列结果转置为DataFrame,其中列是百分位数、最大值、最小值等。
def unique_ids(df):
rows = []
for col in sorted(c for c in df.columns if c != id_col):
v = df.groupby(col)[id_col].nunique().describe()
v = v.to_frame().unstack().unstack() # Transpose
v.index = [col]
rows.append(v)
return pd.concat(rows)