列の1つにURLが含まれているデータセットを集計しようとしています。私は、次の分析を実行したいと思い、次のデータセットpandas agg関数内のpd.Seriesオブジェクトでif文を使用する方法
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で別のシリーズを持っている)です。 pandasは、すべてのアイテムにその単語が含まれている場合、またはそのいずれかで十分である場合に参加したいかどうかを知りません。私はあなたがどのように参加したいのか分かりませんが、文字列オークションを含むウェブサイトだけに参加したいのであれば、xの条件ではなく、 'オークション'の場合はxのサイトのサイトにサイト ' – ayhan
@ayhanこの説明をありがとう、間違っていたことを説明するのは間違いない。私はこの手順を「x」の各値をループし、「オークション」が見つかった場所だけを選択すると解釈していました。私は実際に何が起こっているのか理解しています。 – brittenb