我尝试遍历由pandas创建的数据框,查找在框中只出现一次的每个值。到目前为止我的代码如下:
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中的输入数据)
In [2]: df
Out[2]: Class S07
GTD 2.23
GTD 2.21
GTD 1.82
GTD 2.26
我希望代码删除GTD - 1.82行,因为它的四舍五入值(1.8)在数据集中只出现一次。
发布于 2017-02-24 05:58:06
您可以使用duplicated()方法:
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文件中:
df.loc[df.index[x.index][x]].to_csv('/path/to/file.csv', index=False, ...)
https://stackoverflow.com/questions/42426685
复制相似问题