我创建了一个循环来获取要删除的行列表。
cols = []
for i in range(len(df)):
if i != len(df)-1:
if (df['Player'][i] == df['Player'][i+1]):
cols.append(i+1)
现在我想通过cols并按行号删除每一行。我尝试使用以下循环删除这些行,但它不起作用。
for col in cols:
df.drop([[col]])
答案 0 :(得分:1)
用于删除行:
df.drop(rows,inplace=True)
删除列:
df.drop(cols,axis=1,inplace=True)
测试:
df = pd.DataFrame({'A':[1,2,3,4,5],'B':[1,2,3,4,5]})
print('DataFrame with initialised :\n',df,'\n')
df.drop([2,4],inplace=True)
print('DataFrame after dropping 2 rows:\n',df,'\n')
df.drop(['B'],axis=1,inplace=True)
print('DataFrame after dropping 1 column:\n',df,'\n')
输出:
DataFrame with initialised :
A B
0 1 1
1 2 2
2 3 3
3 4 4
4 5 5
DataFrame after dropping 2 rows:
A B
0 1 1
1 2 2
3 4 4
DataFrame after dropping 1 column:
A
0 1
1 2
3 4
答案 1 :(得分:0)
如果您只想删除col'Player'中具有重复值的行,您可以:
N
答案 2 :(得分:0)
看起来您正试图摆脱前面有Player
重复值的行。使用pandas
时,请始终尝试使用向量化:df.Player == df.Player.shift()
检查Player
中的每个条目是否等于最后一个,因此单行解决方案
df[df.Player != df.Player.shift()]