如果满足条件,如何删除python数据框中的行?

时间:2019-07-22 14:00:08

标签: python pandas dataframe delete-row

我的数据框中有3列:电子邮件,SaleDate,Variation,LastSaleDate。 我想删除SaleDate!= LastSaleDate的所有行,因此我只能保留一封唯一电子邮件,其中SaleDate与LastSaleDate相等。

我尝试了for,但是遇到了错误:

for rows in df.itertuples(): 
    if df.SaleDate is not df.Last: 
        df.drop(axis=0)

Need to specify at least one of 'labels', 'index' or 'columns'

2 个答案:

答案 0 :(得分:0)

您需要将选择正确行的输出分配给新变量。

unique_email_df = df.loc[df['SaleDate'] == df['LastSaleDate']]
print(unique_email_df.iloc[0])

iloc[0]打印命令将打印出新DataFrame中的第零个位置-这应该是带有唯一电子邮件的那个位置!要仅打印电子邮件,请使用以下命令:

unique_email_df = df.loc[df['SaleDate'] == df['LastSaleDate']]
print(unique_email_df.emails.iloc[0])

答案 1 :(得分:0)

根据您所说的,我假设您的数据框中可能有重复项?试试这个。

df[df['SaleDate'] == df['LastSaleDate']].drop_duplicates()