如果行有兩個 True 值(如索引 1),我想洗掉它們:

注意:這是資料框冰山一角。還有更多行。所以我需要一個條件或其他...
uj5u.com熱心網友回復:
一種方法可以是計算真實出現次數,然后根據計數洗掉行,如下所示:df['count'] = df[['1', '2']].sum(axis=1)
然后像這樣洗掉: df3 = df[df['count'] > 2]
我希望我沒有解決你的作業xD
uj5u.com熱心網友回復:
生成資料框:
import pandas as pd
df = pd.DataFrame({
"0": [True, True, True, True, True],
"1": [False, False, False, False, False],
"2": [False, False, False, False, False],
"3": [False, False, False, False, False],
"4": [False, True, False, False, False]
})
獲取每行的真數:
df.assign(number_of_true= lambda x: x.sum(axis=1))
0 1 2 3 4 number_of_true
0 True False False False False 1
1 True False False False True 2
2 True False False False False 1
3 True False False False False 1
4 True False False False False 1
選擇一行正好有兩個True的行:
df = df.query("number_of_true == 2")
一個班輪:
(
df
.assign(number_of_true= lambda x: x.sum(axis=1))
.query("number_of_true == 2")
)
uj5u.com熱心網友回復:
import pandas as pd
df = {
"0": [True, True, True, True, True],
"1": [False, False, False, False, False],
"2": [False, False, False, False, False],
"3": [False, False, False, False, False],
"4": [False, True, False, False, False]
}
df = pd.DataFrame(df)
print(df)
for i in range(df.shape[0]):
criteria_value = 2
count = 0
for column_name in df.columns:
if df.loc[i][column_name]:
count = 1
if count == criteria_value:
df.drop(index=i, inplace=True)
print(df)
輸出
0 1 2 3 4
0 True False False False False
2 True False False False False
3 True False False False False
4 True False False False False
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/489743.html
