擅长:python、mysql、java
<p>@jezrael提供的解决方案工作得很好,但却是最优雅的解决方案,然而,我遇到了严重的性能问题。令人惊讶的是,我发现这是一个更快的解决方案,同时实现相同的目标。你知道吗</p>
<pre><code>nominal_cols = df.filter(like="nominal").columns.values
other_cols = [col for col in df.columns.values if col not in nominal_cols and col != "unique_id"]
df1 = df.groupby('unique_id', as_index=False)[nominal_cols].sum(min_count=1)
df2 = df.groupby('unique_id', as_index=False)[other_cols].first()
pd.merge(df1, df2, on=["unique_id"], how="inner")
</code></pre>