我希望遍历Pandas数据框的行,同时仅检查行之间几列内的相似性。然后,我要检查一个相似性条件,然后进行日期比较(日期比较早/晚),并将相应的更改应用于所选行的一个元素。
对于选择特定的行,我有点想要这样的东西:
p=z["product_name", "Category 1", "Category 2", "Features"].iloc[i-1:i]
我知道这是不正确的,但这只是为了提出一个想法。从很多标题中选择只有几个特殊标题的行。
i=1
while (i<=len(z)):
j=i+1
p=z["product_name", "Category 1", "Category 2", "Features"].iloc[i-1:i]
p=p.to_string(index=False)
while(j<=len(z)):
q=z["product_name", "Category 1", "Category 2", "Features"].iloc[j-1:j]
q=q.to_string(index=False)
if (p==q):
if(z["Update Date"].iloc[i-1:i]>z["Update Date"].iloc[j-1:j]):
z.drop(j, axis=0)
j=j+1
i=i+1
我知道大多数代码实际上是错误的,但这是我正在尝试的方法。请提出解决此问题的更好方法/功能。
答案 0 :(得分:0)
我不太清楚您的问题,但是当您启动i-1:i时,您的代码中就有基本问题,为什么使用此行而不是直接使用一个变量仅给出一个值
p=z["product_name", "Category 1", "Category 2", "Features"].iloc[i-1:i]
尝试一下:
p=z[["product_name", "Category 1", "Category 2", "Features"]].iloc[i-1:i]