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

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

在 Pandas 數據框 .loc 中使用 Python 的“in”運算符

在 Pandas 數據框 .loc 中使用 Python 的“in”運算符

月關寶盒 2023-04-18 14:32:26
我正在使用一些 Pandas 數據幀,但我不太明白為什么允許使用某些布爾運算符并在 -selector 中工作,.loc而其他運算符會出錯。準確地說,讓我們采用以下數據框:import pandas as pddf = pd.DataFrame({'A': 'foo bar foo bar foo bar foo foo'.split(),                   'B': 'one one two thr two two one thr'.split()})現在兩者'two' == 'two'都'w' in 'two'評估為True,但是當與df.loc[...]以下作品一起使用時:df.loc[df['B'] == 'two']打印出來         A       B    2   foo     two    4   foo     two    5   bar     two但以下引發了一個KeyError: False錯誤。df.loc['w' in df['B']]我知道解決這個問題的方法,但沒有一個感覺特別順利,更糟糕的是我根本不明白為什么 -selector'w' in df['B']不允許在.loc.
查看完整描述

2 回答

?
蠱毒傳說

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

查看 的輸出df['B'] == 'two并將其與 的輸出進行比較'w' in df['B']。第一個將輸出一個熊貓系列,其中每一行包含 True 或 False?df['B']。第二個將輸出False.

運算.loc符可以采用“與被切片的軸長度相同的布爾數組,例如 [True, False, True]”。您獲得了KeyError: False因為.loc試圖找到False既不是列名也不是行名的。

要使用w in df['B']-expression 你可以這樣做:

list_true_false?=?['w'?in?entry?for?entry?in?df['B']]`

df.loc[list_true_false]`


查看完整回答
反對 回復 2023-04-18
?
慕尼黑5688855

TA貢獻1848條經驗 獲得超2個贊

您需要 isin 運算符或包含函數

df.loc[df['B'].isin(['two'])]?#?to?match?the?full?word?specify?it?as?list
df.loc[df['B'].str.contains('w')]?#?to?match?the?pattern?or?a?letter


查看完整回答
反對 回復 2023-04-18
  • 2 回答
  • 0 關注
  • 358 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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