亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python Pandas,布爾索引:如何選擇具有“真”值的所有行

Python Pandas,布爾索引:如何選擇具有“真”值的所有行

夢里花落0921 2021-10-19 15:10:20
讓我們假設我需要一個過濾器的“起始橋”。如何將列中所有值的布爾索引設為“真”?最小示例:-> 顯而易見。如果我有一個形狀為 (2, 2) 的 df,我想得到一個 (2,1) = True 的布爾索引。當然,2 行是可變的,列數也是可變的。import pandas as pdd = {'col1': [1, 2], 'col2': [3, 4]}df = pd.DataFrame(data=d)現在我有一個像“col1 中的值需要為 1”這樣的條件,所以我這樣做:boolean_index = df.loc[:,'col1']==1返回0     True1    FalseName: col1, dtype: bool但我想要的是不指定任何條件(例如不指定 boolean_index = df.loc[:,'col1'] ==1)并返回0     True1     TrueName: col1, dtype: bool我可能只是愚蠢到想不通?還是沒人問這個問題?
查看完整描述

1 回答

?
子衿沉夜

TA貢獻1828條經驗 獲得超3個贊

不完全清楚您在追求什么,但要獲得可以過濾的 True 列:


df = pd.DataFrame({'Col' : ['Something'] * 300})

df['FilterCol'] = df.Col.apply(lambda x : x == 'Something')

然后:


df[df['FilterCol']]

返回一切。在 lambda 函數中將 'Something' 更改為 'Nothing'(或其他任何東西,顯然),它是空的。


然后,您可以根據要過濾的內容更改 lambda 函數。


(編輯 - 基于現在有問題的示例 - 添加:


df.apply(lambda x : True)

到您的代碼末尾以獲得您正在尋找的答案。)


(編輯 2 - 來自新的最小示例:


import pandas as pd

d = {'col1': [1, 2], 'col2': [3, 4]}

df = pd.DataFrame(data=d)

df.apply(lambda x : True, axis=1)

輸出是:


0    True

1    True

dtype: bool

它沒有像您的示例中那樣說明名稱和 dtype,但據我所知,這是如何實現的。


(最終編輯(希望:))


df.col1.apply(lambda x : True)

輸出我認為您正在尋找的答案。)


查看完整回答
反對 回復 2021-10-19
  • 1 回答
  • 0 關注
  • 357 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號