gpt4 book ai didi

python - 如何在 Pandas 中选择不同大小的代码?

转载 作者:行者123 更新时间:2023-11-28 20:35:07 32 4
gpt4 key购买 nike

在 Python 3 中,使用 pandas,我在“CPF_CNPJ_doador”和“CPF_CNPJ_doador_originario”列中有几个代码的数据框

cand_doacoes = pd.read_csv("doacoes_csv.csv",sep=';',encoding = 'latin_1',  decimal = ",")

cand_doacoes.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 427489 entries, 0 to 427488
Data columns (total 12 columns):
UF 427489 non-null object
Partido 427489 non-null object
Cargo 427489 non-null object
Nome_candidato 427489 non-null object
CPF_candidato 427489 non-null int64
CPF_CNPJ_doador 426681 non-null float64
Nome_doador 427489 non-null object
Nome_doador_Receita 427489 non-null object
Valor 427489 non-null float64
CPF_CNPJ_doador_originario 427489 non-null object
Nome_doador_originario 427489 non-null object
Nome_doador_originario_Receita 427489 non-null object
dtypes: float64(2), int64(1), object(9)
memory usage: 39.1+ MB

“CPF_CNPJ_doador”和“CPF_CNPJ_doador_originario”列中的代码始终为整数且大小不同:14 位、13 位、11 位或 10 位

“CPF_CNPJ_doador”中的代码示例:1256007000131、20566882000164、11459125000109、5746038000121...

我需要创建一个只有 14 位和 13 位代码的数据框。拜托,有谁知道我如何只能在数据框“cand_doacoes”的“CPF_CNPJ_doador”列中选择 14 位和 13 位代码?我需要先转换成字符串吗?

最佳答案

如果代码确实有整数,一种应该快速的数学方法是将代码的以 10 为底的对数作为整数类型,然后加 1 来计算位数。这可以是你的面具。

np.isin(np.log10(df.code_column.values).astype(int) + 1, [13, 14])

例如(借用Bharath的数据),

>>> df[np.isin(np.log10(df.num.values).astype(int) + 1, [13, 14])]
num
0 1256007000131
1 20566882000164
2 11459125000109

关于python - 如何在 Pandas 中选择不同大小的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47440578/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com