在Pandas中,如何将符号转换为整数?

2024-10-01 11:41:32 发布

您现在位置:Python中文网/ 问答频道 /正文

在python3和pandas中,我打开一个CSV,如下所示:

import pandas as pd
kwargs = {'sep': ';', 'dtype': str, 'encoding': 'utf-8'}
df = pd.read_csv("COVID_sp_29_mai_2020.csv", **kwargs)

df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 7119 entries, 0 to 7118
Data columns (total 27 columns):
 #   Column                          Non-Null Count  Dtype 
---  ------                          --------------  ----- 
 0   Secretaria                      7119 non-null   object
 1   Assunto                         7119 non-null   object
 2   13979                           7119 non-null   object
 3   Valor de Empenho no Processo    7119 non-null   object
 4   Órgão                           7119 non-null   object
 5   Código UG Documento             7119 non-null   object
 6   Descrição Processo              7119 non-null   object
 7   Finalidade                      7119 non-null   object
 8   R$ Empenho                      7119 non-null   object
 9   Tipo Documento                  7119 non-null   object
 10  Data Atualização                7119 non-null   object
 11  R$ Pago                         7119 non-null   object
 12  Número Empenho                  7119 non-null   object
 13  Número Documento NE Ref / Anul  335 non-null    object
 14  Número Processo                 7119 non-null   object
 15  CGC CPF                         7026 non-null   object
 16  Nome Credor                     7119 non-null   object
 17  Data Emissão                    7119 non-null   object
 18  Ação Orçamentária               7119 non-null   object
 19  Fonte                           7119 non-null   object
 20  Código Fonte                    7119 non-null   object
 21  Descrição                       7119 non-null   object
 22  Unnamed: 22                     0 non-null      object
 23  Unnamed: 23                     0 non-null      object
 24  Unnamed: 24                     0 non-null      object
 25  Unnamed: 25                     16 non-null     object
 26  Unnamed: 26                     17 non-null     object
dtypes: object(27)
memory usage: 1.5+ MB

“CGC CPF”列有识别码,有时只能有数字或数字和字母

标识码“CGC CPF”仅包含文件编号的行被标注。例如:

Educação;Merenda em Casa;regular;81.508.955,00 ;SECRETARIA DA EDUCACAO;80358;MERENDA EM CASA;MERENDA EM CASA;-40280955;NE;29/05/2020;0;2020NE00119;2020NE00120;20407/20;2,29E+13;PICPAY SERVICOS S/A;01/04/2020;FORNEC. ALIMENTACAO P/ALUNOS EDUCACAO BASICA;Federal;5003002;DISPENSA DE LICITACAO;;;;Data Atualização;Data Atualização

在这种情况下,该行代码在CSV中为“2,29E+13”。这是公司代码,我知道是“22896431000110”

请问,如何将列表示法转换为整数

我想将指数符号值转换为int。同时,我将检查CSV值是否正确


Tags: csvpandasdataobjectnullpdnoncpf
1条回答
网友
1楼 · 发布于 2024-10-01 11:41:32

试试这个-

df['CGC CPF'].fillna('UNK', inplace=True)
df.loc[:, 'CGC CPF'] = df.loc[:, 'CGC CPF'].str.replace(',','') #replacing ',' in target column with blank, for us to interpret exponential values
match = ['E+','e+'] #Since there are both e+ and E+ notation
df['CGC CPF'] = df['CGC CPF'].apply(lambda x: float(x) if any(m in x for m in match) else x)  #using float to convert exponential to a number

相关问题 更多 >