-
Notifications
You must be signed in to change notification settings - Fork 55
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
EL CIF de los beneficiarios está incluido en la misma columna que la descripción de los beneficiarios #14
Comments
En Python, la separación de la columna puede realizarse utilizando la librería pandas de la siguiente forma: df[['cif_beneficiario','beneficiario']] = df['beneficiario'].str.split(" ", n=1, expand=True) Para la validación del CIF existe la librería stdnum que ofrece las siguientes funciones:
Habría que ver cómo integrarlo para que se ejecutaran estas funciones en todos los elementos de la nueva columna del CIF. |
puedes aplicar funciones con el método .apply() de dataframes o series. por ejemplo: from stdnum.es import nif
df.cif_beneficiario.apply(nif.compact).apply(nif.is_valid).mean()
>>> 0.9999847783731125 Saludos! |
EDITADO @elsatch ha estado haciendo trabajo de investigación en el BOE y la identificación por provincias dejó de emplearse en 2008: |
@PastorJordi ¿ese cálculo está hecho con los datos reales? Si tenemos 99.9985% de datos del CIF correctos es buena señal. |
No creo que tenga mucha utilidad, pero aquí dejo los CIFs incorrectos por si fuera necesario comprobarlos: juridicas_1.csv juridicas_2.csv |
@elsatch Sí, son datos reales ( donde df proviene de concatenar juridicas_1 con juridicas_2) |
@Rsilnav buen aporte! Quizás añadiendo la descripción del beneficiario se podría intentar localizar el CIF correcto, por si hubiera habido un error de transcripción en los datos. |
A su servicio 😉 Tienen pinta de ser contraprestaciones a particulares extranjeros con DNI extranjero, por eso no son detectados como válidos.
|
Después de hacerme un minimaster CIFs por el BOE, hay algunas de estos de estos resultados que me chirrían muchísimo. En teoría las entidades extranjeras deberían comenzar por la letra N, pero no hay ninguna N aquí. Las D son sociedades comanditarias o en comandita (pero claro, a saber cómo registras una Casa de comunidad autónoma en otro país!) Que el Banco Interamericano de Desarrollo tenga una A en plan S.A es raro también, sobre todo cuando al buscarlo en Google aparece asociado a un NIF correcto: N4006462H Respecto al resto de resultados con nombres parciales de personas, pueden ser resultado del anonimizador de @JaimeObregon, así que con tenerlos localizados, creo que es suficiente. |
Y hablando de los BOE, me he puesto a escribir una función para calcular las provincias a partir del CIF pero parece que está opción solo es válida para entidades creadas antes del 1 de Julio de 2008. De momento descartaría esta opción @dieghernan para no meter más ruido. Más info, por aquí: https://github.com/elsatch/subvenciones/blob/main/notebooks/informacion-cif.ipynb P.D En algún momento habrá que volcar toda esta información a la wiki o a donde corresponda. |
Buenas! Por aportar, he estado programando un validador de CIFs para el paquete de R: El programa capta todos los CIFs ya identificados y ademas cuatro códigos adicionales. Podría ser error mio, pero en cualquier caso lo comparto (con cautela):
|
En los ficheros jurídicas_1.csv y juridicas_2.csv, la columna 9 (beneficiarios) incluye el CIF y la descripción del beneficiario en el mismo campo. De cara a simplificar el tratamiento de datos, sería beneficioso disponer del CIF y la descripción del beneficiario en columnas separadas.
Ejemplo de datos
Resultado esperado
Adicionalmente sería necesario:
The text was updated successfully, but these errors were encountered: