Pandas DataFrame DataFrame.where() 函式
Minahil Noor
2023年1月30日
-
pandas.DataFrame.where()
的語法 -
示例程式碼:
DataFrame.where()
-
示例程式碼:
DataFrame.where()
指定一個值 -
示例程式碼:
DataFrame.where()
使用多個條件
Python Pandas DataFrame.where()
函式接受一個條件作為引數,併產生相應的結果。它對 DataFrame
的每個值進行條件檢查,並選擇接受條件的值。它的功能類似於 if-else 語句。不接受條件的值會被預設的 NaN
值代替。
pandas.DataFrame.where()
的語法
DataFrame.where(
cond,
other=NaN,
inplace=False,
axis=None,
level=None,
errors="raise",
try_cast=False,
)
引數
這個函式有幾個引數。以上是所有引數的預設值。
cond |
它是一個布林值 Series 或 DataFrame ,一個陣列樣的結構或一個可呼叫的結構。它代表了對 DataFrame 的每個值進行檢查的條件/條件。如果條件是 True ,那麼原始值不會被替換。否則,就會被一個 NaN 值替換。 |
other |
它是一個標量,Series /DataFrame ,或一個可呼叫的函式。它表示如果條件為 False ,將為原始值放置的值。 |
inplace |
它是一個布林值。它告訴我們對資料的操作。如果為 True ,它將自己進行修改。 |
axis |
它是一個整數值。它告訴工作軸的行或列。 |
level |
它是一個整數值。它說明了級別。 |
errors |
它是一個字串。它講述了錯誤的情況。它接受兩個選項:raise 或 ignore 。如果它的值是 raise ,那麼它允許提出異常。如果它的值是 ignore ,那麼它將忽略異常,如果有錯誤,則返回原始物件。 |
try_cast |
它是一個布林值。如果可能,它將函式的輸出轉換為原始輸入型別。 |
返回值
它根據條件返回改變後的 DataFrame
。
示例程式碼:DataFrame.where()
我們將在下一個程式碼示例中通過實現這個函式來進一步瞭解它。
import pandas as pd
dataframe=pd.DataFrame({
'A':
{0: 60,
1: 100,
2: 80,
3: 78,
4: 95,
5: 45,
6: 67,
7: 12,
8: 23,
9: 50},
'B':
{0: 90,
1: 75,
2: 82,
3: 64,
4: 45,
5: 35,
6: 74,
7: 52,
8: 93,
9: 18}
})
print(dataframe)
示例 DataFrame
就是。
A B
0 60 90
1 100 75
2 80 82
3 78 64
4 95 45
5 45 35
6 67 74
7 12 52
8 23 93
9 50 18
該函式有一個必選引數,即 cond
。
import pandas as pd
dataframe = pd.DataFrame(
{
"A": {0: 60, 1: 100, 2: 80, 3: 78, 4: 95, 5: 45, 6: 67, 7: 12, 8: 23, 9: 50},
"B": {0: 90, 1: 75, 2: 82, 3: 64, 4: 45, 5: 35, 6: 74, 7: 52, 8: 93, 9: 18},
}
)
dataframe1 = dataframe.where(dataframe > 50)
print(dataframe1)
輸出:
A B
0 60.0 90.0
1 100.0 75.0
2 80.0 82.0
3 78.0 64.0
4 95.0 NaN
5 NaN NaN
6 67.0 74.0
7 NaN 52.0
8 NaN 93.0
9 NaN NaN
不大於 50 的值,即不滿足條件的值將被一個 NaN
值代替。
示例程式碼:DataFrame.where()
指定一個值
import pandas as pd
dataframe = pd.DataFrame(
{
"A": {0: 60, 1: 100, 2: 80, 3: 78, 4: 95, 5: 45, 6: 67, 7: 12, 8: 23, 9: 50},
"B": {0: 90, 1: 75, 2: 82, 3: 64, 4: 45, 5: 35, 6: 74, 7: 52, 8: 93, 9: 18},
}
)
dataframe1 = dataframe.where(dataframe > 50, other=0)
print(dataframe1)
輸出:
A B
0 60 90
1 100 75
2 80 82
3 78 64
4 95 0
5 0 0
6 67 74
7 0 52
8 0 93
9 0 0
在這裡,不符合條件的值被使用者定義的值代替。
示例程式碼:DataFrame.where()
使用多個條件
import pandas as pd
dataframe = pd.DataFrame(
{
"A": {0: 60, 1: 100, 2: 80, 3: 78, 4: 95, 5: 45, 6: 67, 7: 12, 8: 23, 9: 50},
"B": {0: 90, 1: 75, 2: 82, 3: 64, 4: 45, 5: 35, 6: 74, 7: 52, 8: 93, 9: 18},
}
)
dataframe1 = dataframe.where((dataframe == 80) | (dataframe < 50), other=0)
print(dataframe1)
輸出:
A B
0 0 0
1 0 0
2 80 0
3 0 0
4 0 45
5 45 35
6 0 0
7 12 0
8 23 0
9 0 18
返回的 DataFrame
包含符合這兩個條件的值。