pandas 如何按条件去重?

2017-02-20 22:14:12 +08:00
 cuibty
数据如下:

A | B
-------------
1 | 0.2
-------------
1 | 0.3
-------------
1 | 0.4
-------------
2 | 0.1
-------------
3 | 0.2
-------------
3 | 0.4


按 A 列去重,保留 B 列中 最小的一行数据。
8951 次点击
所在节点    Python
4 条回复
raptium
2017-02-20 22:19:43 +08:00
groupby min
raptium
2017-02-20 22:20:50 +08:00
或者 sort_values 然后 drop_duplicates
kingmo888
2017-02-21 00:11:58 +08:00
```
import pandas as pd
data = [[1,1,1,2,3,3], [0.2,0.3,0.4,0.1,0.2,0.4]]
data = pd.DataFrame(data)
data = [[1,1,1,2,3,3], [0.2,0.3,0.4,0.1,0.2,0.4]]
data = pd.DataFrame(data).T
data.columns=['A', 'B']
data.groupby('A').max()
```
staticor
2017-02-21 09:37:40 +08:00
推荐 groupby('A', as_index=False)['B'].min() 比较直接.


另外也推荐看一看 pivot_table 函数, 更是强大.
```
df.pivot_table(index='A', columns=None, values='B', aggfunc=min)
```

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/341898

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX