【发布时间】:2018-05-06 22:16:07
【问题描述】:
我有一个包含 5 列的数据框:文件名、#line_changed-hist、#line_changed-myers、#line_changed-min 和 #line_changed-pat,其中包含数千个数据。如果最后四列(所有 line_changed)具有相同的值,我想要做的是删除行。假设我的数据框名为“datamerge3:
filename #line_changed-hist #line_changed-myers #line_changed-min #line_changed-pat
---------------------------------------------------------------------------------------------------------------
.../util/HBaseFsck.java 1808 1806 1806 1806
.../hfile/HFileBlock.java 1036 1032 1032 1040
.../HConnectionManager.java 794 772 772 774
.../TestCompatibility.java 762 762 762 762
.../master/MockServer.java 605 605 605 605
.../TestRowEndpoint.java 598 598 598 598
.../TestHBaseFsck.java 576 572 572 572
.../TestEndLevel.java 11 0 0 0
我需要删除最后四列 (#line_changed) 中具有相同值的所有行。例如数据编号 4、5 和 6。然后,将其保存到新的 csv 文件。这是我写的代码:
for nn in range(0,len(datamerge3)-1):
dmhist = datamerge3.iloc[nn]['#line_changed-hist']
dmmyers = datamerge3.iloc[nn]['#line_changed-myers']
dmmin = datamerge3.iloc[nn]['#line_changed-min']
dmpat = datamerge3.iloc[nn]['#line_changed-pat']
if ((dmhist == dmmyers) and (dmhist == dmmin) and (dmhist == dmpat)):
datamerge3.drop([nn])
else:
pass
datamerge3.to_csv('diff_file.csv')
但代码不起作用。代码中有我遗漏的东西吗?
【问题讨论】:
标签: python pandas dataframe rows