Python - Datos anidados en cadena de caracteres (DUDA)

   
Vista:

Datos anidados en cadena de caracteres (DUDA)

Publicado por Juanki (3 intervenciones) el 01/06/2016 01:01:14
Buenas, en una tabla, algunos de los datos vienen así:

"R(60OVD(70LVIsc_30LOLsc)_40LVIsc) "

Los numeros representan un porcentaje, y lo que se quiere obtener son los datos de la siguiente forma:

Tipo = OVD
Porcentaje = 60

Tipo = LVIsc
Porcentaje = 40

Es decir, se quieren obtener los datos, pasando por alto CUALQUIER parentesis que se encuentre dentro del principal, y la letra o letras anterior al primer paréntesis

He conseguido sacar los datos en las celdas de este tipo "MTR(55LOL_35MST_10PRD)", mediante dos split (uno con "(" y el otro con "_" ) , eliminando el paréntesis final y por último recorriendo con un for.

Pero intuyo que no es la forma óptima.

Espero que puedan ayudarme, un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Miguel

Datos anidados en cadena de caracteres (DUDA)

Publicado por Miguel mhliebano@gmail.com (19 intervenciones) el 01/06/2016 01:34:40
Saludos, cuantos tipos de patrones tienes en las celdas, yo te aconsejo que busques los patrones y uses expresiones regulares para obtener lo que necesitas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Datos anidados en cadena de caracteres (DUDA)

Publicado por Juanki juanki_08_91@hotmail.com (3 intervenciones) el 01/06/2016 09:25:04
Buenas, no entiendo muy bien la respuesta pero bueno básicamente tengo de los siguientes tipos en la misma columna.
Tipo 1:
AAA
Mediante un if se le otorga porcentaje 100

Tipo 2:
El prefijo (R en este caso, no es siempre el miSmo)

R(60AAA_30BBBsp_10CCC)
He conseguido sacar porcentaje y tipo de cada uno.

Tipo 3:

R(60AAA(50DDD_50EEE)_30BBBsp_10CCC)

Este tipo es el que da problemas.
Si no luego subo un extracto de la tabla como ejemplo.

Gracias por la respuesta, un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Datos anidados en cadena de caracteres (DUDA)

Publicado por Juanki (3 intervenciones) el 01/06/2016 23:04:59
Un ejemplo de la columna de la tabla. Lo que interesa son los PRIMEROS registros que tienen numero (Y suman 100). En negrita estan ejemplos de los que dan problemas.

EDP(45OCT_30EDFea_20ZAU_05VAP)
A(45FDP_40MTR_15PST)
R(60OVD(70LVIsc_30LOLsc)_40LVIsc)
A(85PST_10FDC_05EDFea)
MTR
A(70FDP_20PST_10MTR)
NRF(70OCT_30EDFva)
NEL(55SNE_35OCT_10EDFea)
UEN(45ZAU_30SNE_10EDFva_10OCT_05VAP)
PST
I(50LOLsc_25CHLsc_15FDP_10OCT)
ZEV
UEN(35ZAU_30SNE_25EDFva_05VAP_05OCT)
UEN(45EDFvd_25ZAU_15VAP_05LAA_05OCT_05SNE)
A(85MTR_15CNFpl)
LOLsc
UDS(50EDFva_25ZAU_10VAP_10SNE_05LAA)
UEN(40EDFea_30VAP_20ZAU_10SNE)
MTR
UEN(30EDFva_30ZAU_20SNE_10VAP_05LAA_05OCT)
EPU(80ZAU_20SNE)
I(80PST_20ZEV)
PRDsc
MTR
A(85PRDsc_10ARR_05MTR)
UDS(45EDFvd_35ZAU_10VAP_05OCT_05SNE)
CHLsc
UEN(60EDFem_15SNE_15ZAU_10VAP)
UEN(45ZAU_35EDFva_10VAP_05LAA_05SNE)
NRV(VAP)
PST
CHLsc
PAG(60SNE_20EDFnv_10ZAU_10VAP)
NRF(OCT)
MTR
A(55PST_45MTR)
A(40PST_40FDCfr_20MTRfr)
PST
UEN(65EDFva_30VAP_05ZAU)
NRV(75VAP_25SNE)
A(70MTR_30FDP)
A(45SDN_40PST_15MTR)
ZEV
I(40ZAU_20SNE_15EDFva_15CHLfzsc_05LAA_05OCT)
A(90FDC_10PST)
UENec(50EDFem_30SNE_20VAP)
I(50LOLsc_50UENec(ZEV))
I(60UDS(80EDFvd_10ZAU_10VAP)_20UDS(50EDFva_40ZAU_10VAP)_20UDS(70ZAU_30EDFea))
NRF(90VAP_10EDFnv)
IAS(60EDFnv_40SNE)
IAS(40EDFnv_30SNE_20ZEV_10VAP)
UDS(30ZAU_25EDFva_25SNE_15VAP_05OCT)
NRV(80VAP_20SNE)
I(95CHLsc_05MTR)
A(50MTR_35FDP_15CNF)
PMX(60ZEV_40SNE)
I(85LOLsc_15CHLsc)
A(45PST_35MTR_10FDP_10FDC)
VAP
LOLsc
A(80MTR_20PST)
UEN(70EDFem_30VAP)
CHLsc
A(90FDC_10PST)
UEN(50VAP_40EDFem_10ZAU)
CHLsc
NRV(VAP)
A(65MTR_35PST)
UEN(40EDFem_35ZAU_25VAP)
A(45FDP_45MTR_10SDN)
I(90PRDsc_05EDFva_05VAP)
A(70FDP_30MTR)
A(75MTR_15FDP_10SDN)
TCO(70EDFea_30VAP)
I(40EDFea_30ZAU_25SNE_05OCT)
A(55FDC_45PST)
EDU(50EDFea_20ZAU_15VAP_15OCT)
PMX(90ZEV_10OCT)
UEN(70EDFea_15ZAU_15VAP)
LOLsc
CHLsc
I(45LOLsc_35LVIsc_20MTR)
DHS(60PST_40FDC)
EAI(60OCT_30VAP_10ZAU)
EPU(95ZAU_05VAP)
R(75PRDsc_25CHLrr)
A(35FDP_35CNF_30MTR)
MTR
A(95FDC_05PST)
I(70FDC_30PST)
EDU(45SNE_25OCT_10EDFea_10ZAU_10VAP)
PSTpc
UEN(45EDFem_25VAP_15SNE_10ZAU_05OCT)
A(50CNFpl_30MTR_20PST)
LVIsc
NRV(55VAP_45SNE)
A(55MTR_30FDP_10SDN_05EDFea)
I(60PAG(45SNE_20EDFnv_20VAP_15LAA)_40UDS(65ZAU_15EDFva_10OCT_10SNE))
EDPec(40SNE_30OCT_20EDFem_10ZAU)
I(80LOLsc_20PST)
UDS(40EDFva_35ZAU_25VAP)
LVIsc
I(90PRDsc_10FDC)
UDSec(SNE)
EDP(60EDFea_40VAP)
EAI(70SNE_15VAP_10EDFea_05OCT)
A(70PST_30MTR)
MTR
I(80ZAU_15VAP_05EDFva)
A(55MTR_45CNF)
IPO(50EDFnv_40VAP_10ZEV)
I(35EDFea_20VAP_20SNE_15ZAU_10OCT)
UEN(65EDFem_20SNE_15VAP)
R(50UEN(60EDFem_36VAP_04ZAU)_50TCO(80EDFea_20VAP))
UEN(35EDFva_30ZAU_15VAP_15SNE_05LAA)
R(90CHLsc_10PST)
A(60SDNze_25ARR_10MTR_05CNF)
FDCfr
SNE
IAS(65SNE_25EDFnv_10VAP)
R(70MTR_30CHLsc)
NRV(90VAP_10SNE)
A(40CNF_40MTR_20PST)
EDP(60OCT_20ZAU_10EDFea_10VAP)
LVIsc
EAI(40EDFea_35ZAU_25VAP)
A(60PST_40FDC)
UENec(75ZEV_15VAP_10SNE)
EDP(75OCT_15ZAU_10VAP)
A(55PST_35FDC_10ARR)
A(60MTR_40PST)
A(65PST_35MTR)
IAS(70SNE_20EDFnv_10ZEV)
LOLsc
I(70SNE_20CNF_10EDFva)
LOLsc
CHLsc
A(65MTR_25PST_10SDN)
PST
A(65CNF_35PST)
UDS(SNE)
UEN(65EDFea_20ZAU_10VAP_05LAA)
A(90PST_10FDC)
IAS(35EDFnv_30VAP_30SNE_05ZAU)
PAG(40SNE_25ZAU_20ZEV_15EDFnv)
LVIsc
A(60MTR_30CNF_10PST)
A(45FDP_40MTR_15SDN)
MTR
NRV(50VAP_50SNE)
UEN(50EDFvd_50VAP)
UEN(60ZAU_20EDFva_10SNE_05LAA_05VAP)
CHLrr
FDCfr
UEN(90SNE_10VAP)
PAG(60SNE_30EDFnv_10ZAU)
R(60IAS(45SNE_25ZAU_15EDFnv_10VAP_05OCT)_40UDS(35EDFva_35SNE_20ZAU_10VAP))
EDP(45ZAU_20OCT_15SNE_10VAP_05EDFea_05LAA)
UEN(35EDFva_25ZAU_20VAP_15SNE_05LAA)
A(45FDP_35MTR_20CNF)
SNE
A(60MTR_20FDP_20CNF)
UEN(40SNE_30ZEV_30OCT)
TCOec(ZEV)
I(80CHLsc_20PST)
ACU
A(90CNF_10MTR)
PSTpc
EPU(45ZAU_40SNE_10VAP_05EDFea)
UEN(50EDFvd_20ZAU_15OCT_10VAP_05SNE)
UDS(40EDFem_30ZAU_20VAP_05LAA_05OCT)
LOLsc
UEN(60EDFvd_20SNE_10ZAU_05LAA_05VAP)
PST
CHLrr
I(25LVIsc_25LOLsc_25MTR_25CHLsc)
A(70MTR_30FDP)
CHLrn
UEN(40SNE_30EDFem_15VAP_10ZAU_05LAA)
NRV(95VAP_05SNE)
CHLsc
UEN(70EDFvd_20ZAU_10VAP)
CHLsc
FDC
UEN(50EDFvd_20ZAU_20VAP_10EDFva)
PST
FDCplfr
CHLsc
I(60MTR_40LOLsc)
TCG(35ZAU_35OCT_20EDFea_05LAA_05VAP)
A(70ARR_30MTR)
LVIsc
CNF
A(90MTR_10EDFea)
LOLsc
I(70CHLsc_30LOLsc)
CNF
IAS(70EDFnv_30SNE)
I(50CHLsc_20LVIsc_20FDCfr_10NDP(30EDFea_25VAP_25SNE_20OCT))
UEN(55SNE_30ZAU_15EDFva)
UDS(45ZAU_30EDFva_10VAP_10SNE_05OCT)
EDU(35OCT_25EDFea_25SNE_10ZAU_05VAP)
A(75PSTpc_25MTR)
UEN(50EDFvd_35ZAU_05LAA_05OCT_05SNE)
UEN(55SNE_20ZAU_10EDFva_10VAP_05OCT)
A(40MTR_40SDN_20FDP)
A(60PST_30SDN_10EDFva)
DHS(80CHLsc_20FDP)
CHLsc
UEN(70EDFem_15ZAU_15VAP)
I(60SNE_20EDFva_20ZAU)
MTR
A(60MTR_35PST_05SDN)
A(70PST_30FDC)
UEN(40SNE_30EDFvd_15OCT_10VAP_05ZAU)
CHLsc
CHLsc
CHLsc
NRV(SNE)
DHS(65PST_35FDC)
I(65PST_35FDC)
LOLsc
I(30PST_30MTR_30SDN_10CHLsc)
I(75CHLsc_15FDC_10CHLrr)
I(60LVIsc_20OVD(60LOLsc_40LVIsc)_20CHLsc)
IASec(80SNE_20VAP)
PST
I(70PST_30MTR)
UEN(60EDFem_30VAP_10ZAU)
MTR
UEN(65EDFem_20ZAU_15VAP)
A(50PSTpc_50MTRpc)
TCO(60EDFnv_20SNE_15VAP_05ZAU)
PST
A(65MTRfr_35FDCfr)
I(50SNE_20EDFnv_15EDFva_15OCT)
ESN(55ZEV_30EDFem_10VAP_05ZAU)
I(75FDCfr_15PST_10MTRfr)
A(50PST_20MTR_15FDP_15SDN)
SNE
I(30SNE_25VAP_20ZAU_15EDFem_10EDFva)
A(40FDP_40MTR_20CNF)
A(80ARR_20SDN)
DHS(60CHLsc_30FDP_10PST)
LVIsc
I(75FDC_25PST)
UEN(50EDFvd_40ZAU_10VAP)
R(65CHLsc_35OVD(50LVIsc_50LOLsc))
A(65PST_35MTR)
I(90PST_10FDP)
R(70IAS(80ZEV_20EDFea)_30TCO(60EDFea_30VAP_10ZAU))
EDP(45ZAU_40OCT_10VAP_05LAA)
IAS(95ZEV_05EDFnv)
NRF(85ZEV_10SNE_05EDFea)
EDP(40SNE_20EDFea_15ZAU_15OCT_10VAP)
A(50PSTam_50MTR)
A(70MTRpc_20FDP_10CNF)
I(75SNE_15OCT_10EDFea)
PST
DHS(80FDP_20PST)
A(80PST_20FDCfr)
UEN(65SNE_15EDFvd_10ZAU_10VAP)
IAS(95VAP_05EDFnv)
A(50FDP_50MTR)
A(45MTR_25ARR_15FDP_15CNF)
MTR
I(60CHLsc_40MTR)
I(65EDP(60OCT_35EDFea_05VAP)_35UEN(94EDFem_06VAP))
UENec(60EDFvd_20VAP_20SNE)
MTRpc
LOLsc
A(65MTR_35SDN)
CHLsc
NRV(95VAP_05SNE)
UEN(50EDFea_30SNE_20VAP)
CHLsc
PST
UDS(35EDFva_25ZAU_20VAP_15SNE_05OCT)
CNF
UCS(65EDFvd_15VAP_15SNE_05ZAU)
A(70CNF_30MTR)
MTR
A(60CNF_40MTR)
IAS(50EDFnv_40VAP_10ZAU)
A(75PST_25MTR)
I(30EDFnv_25EDFva_20ZAU_10PRDsc_10VAP_05OCT)
A(40SDN_20PST_20ARR_10FDC_10MTR)
LOLsc
LFNsc
CNFpl
PST
R(60ESN(70EDFva_20ZAU_10VAP)_40UEN(30EDFva_30SNE_25ZAU_10VAP_05LAA))
A(70MTR_20FDP_10CNF)
LOLsc
EAI(60ZAU_30VAP_10EDFea)
CHLsc
A(55FDC_30PST_15UDS(35ZAU_25EDFea_15VAP_10OCT_10SNE_05LAA))
FDC
EDU(45EDFnv_30SNE_15OCT_10VAP)
UEN(70EDFem_15ZAU_15VAP)
I(70PAG(65ZAU_30EDFnv_05LAA)_30CHLsc)
I(50SNE_30EDP(75EDFea_15VAP_10OCT)_20EDU(85EDFea_15VAP))
PRDsc
CHLsc
A(50MTR_40SDNze_10FDP)
A(75PST_25MTRfr)
PAGec(80ZEV_10EDFnv_10OCT)
A(55PST_30MTR_10FDC_05SNE)
CHLsc
A(75MTR_25FDP)
A(80FDP_20MTR)
A(85MTR_15PST)
MTRfr
EDU(45ZAU_30EDFea_15OCT_10VAP)
A(75PST_25FDCfr)
A(65PST_35MTR)
MTR
DHS(80PST_20FDP)
I(75PST_25AAR(40CHLsc_25FDP_20EDFva_15MTR))
UEN(70EDFem_15ZAU_10VAP_05LAA)
CHLrr
I(80EAI(60ZAU_20EDFea_20VAP)_20EDP(70OCT_30ZAU))
I(60PAG(35SNE_30EDFva_25ZAU_10VAP)_40LOLsc)
UEN(40EDFem_25SNE_20ZAU_10VAP_05LAA)
I(60CNF_20UDS(45EDFva_25SNE_15ZAU_15VAP)_20MTR)
UDS(75SNE_25EDFvd)
UDS(SNE)
LOLsc
A(40CNF_20FDP_20FDC_20MTR)
A(55MTR_45PST)
EDP(60OCT_10EDFea_10ZAU_10LAA_10SNE)
UDS(50EDFvd_20ZAU_20SNE_10VAP)
I(80PRDsc_20FDC)
LVIsc
A(50FDP_50MTR)
I(80IAS(40EDFnv_30ZEV_20SNE_10VAP)_20NRV(VAP))
LOLsc
EDP(50OCT_25ZAU_10VAP_05EDFea_05LAA_05SNE)
UDS(60EDFva_20SNE_10ZAU_10VAP)
ZEV
I(80LOLsc_20EDFva)
I(40FDC_35EDFva_25PST)
A(70MTR_20CNF_10SDNze)
EDP(35EDFea_30OCT_15SNE_10ZAU_10VAP)
I(90MTR_10CHLsc)
UDS(40ZAU_35EDFva_15VAP_05OCT_05SNE)
A(40MTR_35PST_15FDP_10SDN)
PSTpc
UDS(40ZAU_30EDFvd_20VAP_10OCT)
R(80CHLsc_20LOLsc)
UEN(40EDFem_40ZAU_10VAP_10ZEV)
ZEV
I(50ARR_35CNF_15MTR)
CHLsc
MTR
LVIsc
FDCfr
A(40MTR_30PST_30FDC)
UENec(45EDFvd_25SNE_15VAP_10ZAU_05LAA)
CHLsc
EPU(70ZAU_30VAP)
PRDsc
LOLsc
CHLsc
A(80PST_20MTRfr)
OVD(65LVIsc_35LOLsc)
PST
ZAU
IAS(70EDFnv_20VAP_10ZAU)
IAS(45SNE_30VAP_15EDFnv_10ZEV)
A(80FDP_20MTR)
ZEV
PRDsc
A(45MTR_40FDP_15CNF)
LOLsc
UEN(70EDFvd_20VAP_05ZAU_05SNE)
CHLsc
A(80PST_20FDP)
I(40LVIsc_30LOLsc_30CHLsc)
UEN(45EDFva_25ZAU_15VAP_10SNE_05OCT)
I(80MTR_20CHLsc)
A(85MTR_15FDP)
A(55PSTpc_30MTRfr_15FDCfr)
I(80LVIsc_20CHLsc)
UEN(35EDFva_20ZAU_20VAP_20SNE_05LAA)
CHLsc
A(55MTR_45PST)
UEN(50EDFem_40ZAU_10VAP)
R(60PRDsc_15EDFnv_10FDP_10MTR_05SNE)
A(85PST_15FDP)
AAR(45LFNsc_40CHLsc_10MTR_05EDFva)
R(95LOLsc_05PSTpc)
A(70CNF_30MTR)
LOLsc
UEN(60EDFem_20VAP_10ZAU_10SNE)
UEN(50EDFem_35SNE_10VAP_05ZAU)
UEN(90SNE_10VAP)
EAI(70OCT_25VAP_05EDFea)
I(85MTR_15PST)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar