猿问

在熊猫中如何将符号转换为整数?

在 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


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

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


请问,如何将列符号转换为整数?


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


慕工程0101907
浏览 102回答 1
1回答

慕哥6287543

试试这个 -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 valuesmatch = ['E+','e+'] #Since there are both e+ and E+ notationdf['CGC CPF'] = df['CGC CPF'].apply(lambda x: float(x) if any(m in x for m in match) else x)&nbsp; #using float to convert exponential to a number
随时随地看视频慕课网APP

相关分类

Python
我要回答