首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Pandas:遍历来自value_counts的数据帧

Pandas:遍历来自value_counts的数据帧
EN

Stack Overflow用户
提问于 2017-02-24 05:39:02
回答 1查看 782关注 0票数 2

我尝试遍历由pandas创建的数据框,查找在框中只出现一次的每个值。到目前为止我的代码如下:

代码语言:javascript
运行
复制
import pandas as pd
df = pd.read_csv('xyz.csv')
saved_column = df['S07'][df['Class'].isin(['GTD'])].round(decimals=1).value_counts()

如何遍历此数据帧,检测只出现一次的所有值,并最终将其从csv文件中删除?

非常感谢您的帮助!

例如:(csv-file中的输入数据)

代码语言:javascript
运行
复制
In [2]: df
Out[2]: Class  S07
         GTD   2.23
         GTD   2.21
         GTD   1.82
         GTD   2.26

我希望代码删除GTD - 1.82行,因为它的四舍五入值(1.8)在数据集中只出现一次。

示例数据集:https://1drv.ms/u/s!AvuwPSn7axNcePUsJD8kMB1FnlE

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-24 05:58:06

您可以使用duplicated()方法:

代码语言:javascript
运行
复制
In [86]: df
Out[86]:
  Class   S07
0   AAA  1.10
1   AAA  1.11
2   GTD  2.23
3   GTD  2.21
4   GTD  1.82
5   GTD  2.26

In [87]: x = df.loc[df.Class.isin(['GTD']), 'S07'].round(1).duplicated(keep=False)

In [88]: df.loc[df.index[x.index][x]]
Out[88]:
  Class   S07
2   GTD  2.23
3   GTD  2.21

现在您可以将结果保存到新的CSV文件中:

代码语言:javascript
运行
复制
df.loc[df.index[x.index][x]].to_csv('/path/to/file.csv', index=False, ...)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42426685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档