Di python3 dan pandas saya membuka CSV seperti ini:

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

Kolom memiliki 'CGC CPF' memiliki kode identifikasi, yang terkadang hanya memiliki angka atau angka dan huruf

Baris bahwa kode identifikasi 'CGC CPF' hanya memiliki nomor file yang dinotasikan. Contoh:

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

Dalam hal ini, kode untuk baris ini adalah "2,29E+13" di CSV. Ini kode perusahaan, yang saya tahu adalah "22896431000110"

Tolong, bagaimana saya bisa mengubah notasi kolom menjadi bilangan bulat?

Saya ingin mengonversi nilai notasi eksponensial menjadi int. Dan juga dengan itu saya akan memeriksa apakah nilai CSV benar

0
Reinaldo Chaves 2 Juni 2020, 15:03

1 menjawab

Jawaban Terbaik

Coba ini -

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
1
Rohit upadhyay 3 Juni 2020, 06:49