如何根据标题值选择多行?

时间:2019-05-28 07:04:47

标签: python-3.x pandas dataframe selection

我希望遍历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

我知道大多数代码实际上是错误的,但这是我正在尝试的方法。请提出解决此问题的更好方法/功能。

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]