在python3和pandas中,我具有以下数据框:
nao_eleitos.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 1549 entries, 5 to 5174
Data columns (total 15 columns):
SG_UF 1549 non-null object
DS_CARGO 1549 non-null object
SQ_CANDIDATO 1549 non-null object
NM_CANDIDATO 1549 non-null object
NM_URNA_CANDIDATO 1549 non-null object
NR_CPF_CANDIDATO 1549 non-null object
SG_PARTIDO 1549 non-null object
DT_NASCIMENTO 1549 non-null object
NR_IDADE_DATA_POSSE 1549 non-null int64
NR_TITULO_ELEITORAL_CANDIDATO 1549 non-null object
DS_GENERO 1549 non-null object
DS_SIT_TOT_TURNO 1549 non-null object
QT_VOTOS_NOMINAIS 1549 non-null int64
VR_RECEITA_FUNDOS 1549 non-null float64
custo_por_voto 1549 non-null float64
dtypes: float64(2), int64(2), object(11)
memory usage: 193.6+ KB
“ custo_por_voto”列具有现金价值。我需要过滤大于或等于1,904的值
nao_eleitos[['custo_por_voto']].head()
custo_por_voto
1.9940
3.6092
35,500.0000
1.1461
30,000.0000
因此,我尝试使用变量布尔值进行过滤:
seleciona = nao_eleitos['custo_por_voto'] >= 1,904
valores_altos = nao_eleitos[seleciona]
但是我有这个错误:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-87-ffe42c00da2f> in <module>
1 seleciona = nao_eleitos['custo_por_voto'] >= 1,904
2
----> 3 valores_altos = nao_eleitos[seleciona]
~/Documentos/Code/laranjas/lib/python3.6/site-packages/pandas/core/frame.py in __getitem__(self, key)
2925 if self.columns.nlevels > 1:
2926 return self._getitem_multilevel(key)
-> 2927 indexer = self.columns.get_loc(key)
2928 if is_integer(indexer):
2929 indexer = [indexer]
~/Documentos/Code/laranjas/lib/python3.6/site-packages/pandas/core/indexes/base.py in get_loc(self, key, method, tolerance)
2654 'backfill or nearest lookups')
2655 try:
-> 2656 return self._engine.get_loc(key)
2657 except KeyError:
2658 return self._engine.get_loc(self._maybe_cast_indexer(key))
pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc()
pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc()
TypeError: '(5 True
6 True
7 True
8 True
10 True
11 True
27 True
28 True
34 False
35 True
37 True
40 True
47 True
51 True
52 True
55 True
57 True
61 True
62 True
67 True
73 True
77 True
84 True
86 False
88 True
89 True
91 False
92 False
94 True
98 True
...
5065 True
5067 True
5070 True
5074 False
5081 True
5084 True
5098 True
5099 True
5100 True
5104 True
5107 True
5111 True
5112 True
5113 True
5114 False
5123 False
5126 True
5136 True
5147 False
5149 True
5150 True
5155 True
5158 True
5162 True
5166 True
5167 True
5168 True
5170 True
5172 True
5174 True
Name: custo_por_voto, Length: 1549, dtype: bool, 904)' is an invalid key
此条件导致当值> = 1,904时具有True的布尔变量,对吗?否则为假
之后,我们可以使用此布尔变量过滤数据框
请,有人知道该错误的原因吗?还是更好的过滤方式?
答案 0 :(得分:2)
您不应将accounting
的格式float
seleciona = nao_eleitos['custo_por_voto'] >= 1904