我有一個熊貓數據框加上一串熊貓系列標識符,並且希望過濾來自數據框中與該系列標識符對應的行。要從數據框中獲取標識符,我需要連接其前兩列。我已經嘗試過各種各樣的東西來過濾,但似乎沒有工作到目前爲止。這裏是我曾嘗試過的:使用連接字符串過濾來自熊貓數據框的行
1)我試着在數據框中添加一列布爾值,如果該行對應於其中一個標識符,則返回true,否則返回false(希望能夠使用後面的過濾新的列):
df["isInAcids"] = (df["AcNo"] + df["Sortcode"]) in acids
其中
acids
是包含標識符系列。
然而,這給我一個
TypeError: unhashable type
2)我嘗試使用應用功能過濾:
df[df.apply(lambda x: x["AcNo"] + x["Sortcode"] in acids, axis = 1)]
這不會給我一個錯誤,但是該數據幀的長度保持不變,所以它不會過濾任何東西。
3)我添加了一個新列,包含連接的字符串/標識符,然後嘗試之後過濾(見Filter dataframe rows if value in column is in a set list of values):
df["ACIDS"] = df["AcNo"] + df["Sortcode"]
df[df["ACIDS"].isin(acids)]
但同樣,數據幀不會改變。
我希望這是有道理的......
,我可能會錯誤有什麼建議? 謝謝, 安妮
你可以發佈你的'dataframe'和'series'的一個小樣本,你期望你的結果看起來像什麼嗎? – TomAugspurger
這些操作不在原位,所以數據框不會只是改變,除非你明確地告訴它(這是一個**好的事情)。 –
嗨安迪,非常感謝,如果我在第三個解決方案中添加'df = ...'。 – Anne