python - Pandas 在由列表组成的元素上放置重复项
问题描述
说我的数据框是:
df = pandas.DataFrame([[[1,0]],[[0,0]],[[1,0]]])
产生:
0
0 [1, 0]
1 [0, 0]
2 [1, 0]
如果我写的话,我想删除重复项,并且只获取元素 [1,0] 和 [0,0]:
df.drop_duplicates()
我收到以下错误:TypeError: unhashable type: 'list'
如何调用 drop_duplicates()?
更笼统地说:
df = pandas.DataFrame([[[1,0],"a"],[[0,0],"b"],[[1,0],"c"]], columns=["list", "letter"])
我想调用 df["list"].drop_duplicates(),所以 drop_duplicates 适用于系列而不是数据框?
解决方案
您可以使用numpy.unique()
功能:
>>> df = pandas.DataFrame([[[1,0]],[[0,0]],[[1,0]]])
>>> pandas.DataFrame(np.unique(df), columns=df.columns)
0
0 [0, 0]
1 [1, 0]
如果要保留订单结帐:numpy.unique 保留订单
推荐阅读
- power-automate - 如何根据共享收件箱中的新电子邮件在 Azure DevOps 中创建 WorkItem,但对电子邮件的回复仍在同一任务中
- angular - 角度http TypeError:无法读取未定义的属性'get'
- html - 如何在 CSS 或 HTML 中的黑色或白色框内添加一个圆圈
- r - 使用 Rcurl 重命名 FTP 中的文件
- angular - 向 ngx-material-keyboard 添加箭头键
- ios - 3rd 方分析库如何仅通过导入其库来跟踪屏幕视图
- html - 在反应页面底部显示横幅
- python - 使用 matplotlib inline 但执行完成时不要调用 flush_figures
- arrays - 无法将 ftell 函数的返回值分配给 char 数组大小
- google-apps-script - 用于隐藏在 onEdit() 上不起作用的列的 Google 表格脚本