【发布时间】:2022-01-22 20:57:40
【问题描述】:
首先非常感谢您的帮助。 我有一个表,我用 pandas 作为 df 导入。对于每个唯一的 foo&bar,我想获得一个新的 df,其中最小的 zoo 和相应的 qux。我试图简化我的数据框,但实际上我有数百个 qux 和 foo 以及几十个 bar。
我的输入表:
| foo | bar | zoo | qux |
|---|---|---|---|
| aaa | HB1 | 9.75 | lab1 |
| aaa | HB1 | 4.87 | lab2 |
| aaa | HB1 | 3.05 | lab3 |
| aaa | TS3 | 8.51 | lab1 |
| aaa | TS3 | 2.58 | lab2 |
| aaa | TS3 | 2.48 | lab3 |
| bbb | HB1 | 9.03 | lab1 |
| bbb | HB1 | 6.11 | lab2 |
| bbb | HB1 | 7.66 | lab3 |
| bbb | TS3 | 3.57 | lab1 |
| bbb | TS3 | 4.25 | lab2 |
| bbb | TS3 | 1.63 | lab3 |
我的预期结果
| foo | bar | zoo | qux |
|---|---|---|---|
| aaa | HB1 | 3.05 | lab3 |
| aaa | TS3 | 2.48 | lab3 |
| bbb | HB1 | 6.11 | lab2 |
| bbb | TS3 | 1.63 | lab3 |
我尝试使用 groupby 或 pivot_table,我获得了每个 bar 和每个 foo 的 min zoo 但我没有获得相应的 qux 并且 df 被完全重塑,看起来不像我的第一个格式。我有点失落。
非常感谢您的帮助。
【问题讨论】:
-
试试这个:
df[df['zoo'].isin(df.groupby(['foo','bar'])['zoo'].min().values)]
标签: pandas pandas-groupby seaborn pivot-table heatmap