在我的美國選舉資料集中,我的檔案中有一堆資料,我想根據“政黨”列中的變數在行級別洗掉這些資料。我的資料集樣本;
| 狀態 | 縣 | 候選人 | 派對 | total_votes | 韓元 |
|---|---|---|---|---|---|
| 特拉華州 | 肯特縣 | 喬拜登 | DEM | 44552 | 真的 |
| 特拉華州 | 肯特縣 | 唐納德·特朗普 | 代表 | 41009 | 錯誤的 |
| 特拉華州 | 肯特縣 | 喬·喬根森 | 鋰離子電池 | 1044 | 錯誤的 |
| 特拉華州 | 肯特縣 | 豪伊·霍金斯 | GRN | 420 | 錯誤的 |
| 特拉華州 | 新堡縣 | 喬拜登 | DEM | 195034 | 真的 |
| 特拉華州 | 新堡縣 | 唐納德·特朗普 | 代表 | 88364 | 錯誤的 |
| 特拉華州 | 新堡縣 | 喬·喬根森 | 鋰離子電池 | 2953 | 錯誤的 |
| 特拉華州 | 新堡縣 | 豪伊·霍金斯 | GRN | 1282 | 錯誤的 |
| 特拉華州 | 蘇塞克斯縣 | 唐納德·特朗普 | 代表 | 71230 | 真的 |
對于派對值不是“DEM”或“REP”的所有行,我想洗掉它們。使用以下代碼,我提取了所有唯一的派對值;
uniqueParty = df['party'].unique()
print(uniqueParty)
['DEM' 'REP' 'LIB' 'GRN' 'WRI' 'PSL' 'IND' 'ALI' 'CST' 'ASP' 'OTH' 'UTY'
'LLC' 'SWP' 'BAR' 'PRO' 'NON' 'PRG' 'UNA' 'BMP' 'GOP' 'BFP' 'APV' 'IAP'
'LLP' 'SEP']
然后我創建了一個洗掉 DEM 和 REP 的串列;
uniqueParty2 =['LIB', 'GRN', 'WRI', 'PSL', 'IND', 'ALI', 'CST', 'ASP', 'OTH', 'UTY',
'LLC', 'SWP', 'BAR', 'PRO', 'NON', 'PRG', 'UNA', 'BMP', 'GOP', 'BFP', 'APV', 'IAP',
'LLP', 'SEP']
print(type(uniqueParty2))
這是一個串列,然后我想通過以下代碼根據需要洗掉行;
df = pd.DataFrame(list(uniqueParty2()))
df = df[df.column_name.isin(uniqueParty2) == False]
這是失敗的,我得到的訊息是“TypeError:'list' object is not callable”我在代碼中嘗試了一個元組和一個字串型別,但同樣的訊息 - 這些型別在代碼中是不可呼叫的。
uj5u.com熱心網友回復:
看起來是因為你在uniqueParty2in之后有括號df = pd.DataFrame(list(uniqueParty2()))。uniqueParty2 是一個串列,括號告訴 Python 嘗試將其作為函式呼叫。
uj5u.com熱心網友回復:
我實際上是從不同的角度處理這個問題的。我對任何不是我需要的值的值使用了 drop 函式,這樣我就不需要使用串列來獲得所需的結果。
df = df.drop(df[(df.party != 'REP') & (df.party != 'DEM')].index)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/384722.html
