這個問題在這里已經有了答案: 按子字串標準過濾 pandas DataFrame 16 個答案 昨天關門。
我想列印與我從 Excel 檔案中讀取的郵件的最后一個索引匹配的那些,@gmail.com
. 我試過這樣的代碼。
import pandas as pd
excelRead = pd.read_excel('mailing.xlsx')
excelRead.dropna(inplace= True)
excelTest = (excelRead['mails'][:-11] == "@gmail.com")
print(excelTest)
我得到的輸出是True
or False
。我嘗試了這樣的代碼,因為它在我研究的來源中說我需要將它匯入到DataFrame
.
import pandas as pd
excelRead = pd.read_excel('mailing.xlsx')
excelRead.dropna(inplace= True)
excelTest = excelRead[(excelRead['mails'][:-11] == "@gmail.com")]
print(excelTest)
但這是output
我得到的
pandas.core.indexing.IndexingError: Unalignable boolean Series provided as indexer (index of the boolean Series and of the indexed object do not match).
我在執行的代碼中哪里出錯了?
uj5u.com熱心網友回復:
如果使用excelRead['mails'][:-11]
獲取列的最后 11 個元素mails
,則與"@gmail.com"
- 獲取布爾系列與 11 個值進行比較,然后如果與原始 DataFrame 進行比較,則會引發錯誤 - 11 個元素的索引與excelRead
DataFrame 的索引不同。
正確的解決方案是str
用于最后 9 個元素:
excelTest = excelRead[excelRead['mails'].str[:-9] == "@gmail.com"]
或者:
excelTest = excelRead[excelRead['mails'].str.endswith("@gmail.com")]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/505761.html
上一篇:特定行組合中的總和值