簡體   English   中英

Python Pandas:如何使用 df.drop 和 df.loc 刪除行?

[英]Python Pandas: How can I drop rows using df.drop and df.loc?

假設我有以下 dataframe:

import numpy as np
import pandas as pd

df = pd.DataFrame(
    {
        'user': ['Adam', 'Barry', 'Cindy', 'Dirk', 'Ella'],
        'income': [50000, 0, 100000, 30000, 0],
        'net worth': [250000, 1000000, 2000000, 50000, 0]
    }
)

在此處輸入圖像描述

到目前為止,我一直在使用以下條件根據條件刪除行:

df2 = df[df.income != 0]

在此處輸入圖像描述

並像這樣使用多個條件:

df3 = df[(df['income'] != 0) & (df['net worth'] > 100000)]

在此處輸入圖像描述

問題:這是刪除行的首選方式嗎? 如果不是,那是什么? 是否可以通過df.dropdf.loc做到這一點? 語法是什么?

.loc創建您要保留的行的子集,而不是.drop過濾您要刪除的行。 drop需要行 label(索引名稱)。

最后一個帶drop的過濾器的等價物是:

>>> df.drop(df[~((df['income'] != 0) & (df['net worth'] > 100000))].index)

    user  income  net worth
0   Adam   50000     250000
2  Cindy  100000    2000000

# OR a bit smart:
>>> df.drop(df[(df['income'] == 0) | (df['net worth'] <= 100000)].index)

    user  income  net worth
0   Adam   50000     250000
2  Cindy  100000    2000000

您更喜歡哪種語法?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM