我只需要在字串的一列上使用函式過濾熊貓資料框。
這是資料框的示例:
ID Titles Values
0 1 title1 value1
1 2 title2 value2
2 3 title3 value3
...
我有一個復雜的功能:
def checkTitle(title:str) -> bool :
...
而且我想在列標題上使用此函式過濾第一個資料框,只有函式發送 True 的行。
我嘗試了類似的東西,但它沒有回傳任何可用的東西:
df = df.apply(checkTitle(df["Titles"]),axis=1)
你能幫忙嗎?
uj5u.com熱心網友回復:
您可以將該函式僅應用于資料框的一列,然后使用生成的布爾系列來選擇行:
select = df.Titles.apply(checkTitle)
df = df.loc[select, :]
uj5u.com熱心網友回復:
我認為這可能是您的解決方案。
def checkTitle(title:str) -> bool:
if title == 'title2':
return True
else:
return False
df = pd.DataFrame({'ID': [1, 2, 3, 4], 'Titles': ['title1', 'title2', 'title2', 'title3'], 'Values': ['value1', 'value2', 'value2', 'value3']})
mask = df.Titles.apply(checkTitle)
df[mask]
我不知道你的詳細功能,但你需要回傳兩個布林值 True|False 來切片資料幀。
我希望這個解決方案有幫助
問候,
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/344582.html
