我想要聚合其中一列包含一些URL的數據集。請看下面的數據集如何在pandas中使用if語句與pd.Series對象的聚合功能
import pandas as pd
df = pd.DataFrame({"ID": [1, 1, 1, 2, 2],
"Website": ["https://www.auctionbid.com",
"https://www.google.com",
"https://www.awesomeauctions.net",
"https://www.awesomeauctions.net",
"http://www.auctionnoitcua.com"
]
})
我想執行以下分析:
(
df
.groupby("ID")
.agg({"Website": lambda x:
"; ".join([site for site in x if x.str.contains("auction")])
})
)
這導致ValueError
指出了一系列的真值是不明確的。 this question的接受答案指出if
可以隱式地將操作數轉換爲bool
,並建議使用「按位」運算符。
那麼我的問題是我如何實現&
和|
的等效if
?
'x'是一個系列(每個ID必須在AGG不同系列)。如果所有的項目都包含這個單詞,或者它們中的任何一個都足夠,大熊貓不知道你是否想加入。我也不知道你想如何加入,但是如果你只想加入包含字符串拍賣的網站,那麼在x上的一個條件而不是一個條件,只要將理解改爲'site for site in x if'auction'in網站' – ayhan
@ayhan謝謝你的解釋,它肯定有助於解釋發生了什麼問題。我正在解釋這個過程,循環遍歷每個'x'的值,只選擇那些發現「拍賣」的地方。我現在明白實際發生了什麼。 – brittenb