您可以
np.repeat用来获取重复的索引,然后使用它来索引框架:
>>> df2 = df.loc[np.repeat(df.index.values,df.n)]>>> df2 id n v0 A 1 101 B 2 131 B 2 132 C 3 82 C 3 82 C 3 8
之后,只需清理一下即可:
>>> df2 = df2.drop("n",axis=1).reset_index(drop=True)>>> df2 id v0 A 101 B 132 B 133 C 84 C 85 C 8请注意,如果您可能有重复的索引值得担心,则可以
.iloc改用:
In [86]: df.iloc[np.repeat(np.arange(len(df)), df["n"])].drop("n", axis=1).reset_index(drop=True)Out[86]: id v0 A 101 B 132 B 133 C 84 C 85 C 8使用位置,而不使用索引标签。



