[Python] Atribuição de listas em uma matriz

Discussão em 'Python' iniciado por Stack, Março 3, 2025.

  1. Stack

    Stack Membro Participativo

    Estou criando em uma sequência de arquivos com o glob: list(glob.glo('arquivos'))

    Arrays com determinados valores retirados de cada célula de um arquivo lido como tabela

    os.chdir('C:\*2018-01-17')

    for file in list(glob.glob('2018011722*.ascii')):

    reader = pd.read_table(file)

    df = reader.loc[102:901,:]

    df = df.rename(columns={'begin( product )': '0'})

    df = df['0'].str.split(',', 799 , expand=True )

    df.index = range(800)


    DC = df.iloc[257,221]
    if DC == 'nd':
    DC = 0
    elif DC != 'nd':
    DC = round(10**(float(DC)/10),1)

    FRA = df.iloc[403,667]
    if FRA == 'nd':
    FRA = 0
    elif FRA != 'nd':
    FRA = round(10**(float(FRA)/10),1)

    ITA = df.iloc[426,209]
    if ITA == 'nd':
    ITA = 0
    elif ITA != 'nd':
    ITA = round(10**(float(ITA)/10),1)

    MON = df.iloc[413,261]
    if MON == 'nd':
    MON = 0
    elif MON != 'nd':
    MON = round(10**(float(MON)/10),1)

    QUI = df.iloc[335,368]
    if QUI == 'nd':
    QUI = 0
    elif QUI != 'nd':
    QUI = round(10**(float(QUI)/10),1)

    XAN = df.iloc[365,423]
    if XAN == 'nd':
    XAN = 0
    elif XAN != 'nd':
    XAN = round(10**(float(XAN)/10),1)


    SMO = df.iloc[346,240]
    if SMO == 'nd':
    SMO = 0
    elif SMO != 'nd':
    SMO = round(10**(float(SMO)/10),1)

    PAL = df.iloc[409,300]
    if PAL == 'nd':
    PAL = 0
    elif PAL != 'nd':
    PAL = round(10**(float(PAL)/10),1)

    MAR = df.iloc[340,298]
    if MAR == 'nd':
    MAR = 0
    elif MAR != 'nd':
    MAR =round(10**(float(MAR)/10),1)


    cidades = np.array(([DC,FRA,ITA,MON,QUI,XAN,SMO,PAL,MAR]))

    print(file,cidades)

    2018011722000400dBA.pac.ascii [ 0. 0.1 0.2 0. 0. 0. 0. 0. 0. ]

    2018011722060400dBA.pac.ascii [ 0. 0.2 0.6 0. 0. 0. 0. 0. 0. ]

    2018011722120400dBA.pac.ascii [ 0. 0.2 1.1 0. 0. 0. 0. 0. 0. ]

    2018011722180400dBA.pac.ascii [ 0. 0.3 1.9 0. 0. 0. 0. 0. 0. ]

    2018011722240400dBA.pac.ascii [ 0. 0.3 1.6 0. 0. 0. 0. 0. 0. ]

    2018011722300400dBA.pac.ascii [ 0. 0.2 0.6 0. 0. 0. 0.1 0. 0. ]

    2018011722360400dBA.pac.ascii [ 0. 0. 0.2 0. 0.1 0. 0.2 0. 0. ]

    2018011722420400dBA.pac.ascii [ 0. 0. 0.1 0. 0.3 0. 0.1 0. 0. ]

    2018011722480400dBA.pac.ascii [ 0. 0. 0.1 0. 2.8 0. 0. 0. 0. ]

    2018011722540400dBA.pac.ascii [ 0. 0. 0. 0. 5.7 0. 0. 0. 0. ]


    Onde o 2018*.ascii é o nome do arquivo e a linha são os valores concatenados.

    Estou tentando criar uma matriz em que as colunas são fixas [DC,FRA,ITA,MON,QUI,XAN,SMO,PAL,MAR] E as linhas são os arquivos.

    Quero criar uma matriz como acima. Porém não para cada arquivo e sim criar cada valor de elemento da Matriz aij seja i do arquivo e j o valor correspondente ao array. Não separado para cada arquivo uma linha de valores

    Para poder realizar funções estatísticas com esses valores.

    Muito Obrigado!

    Continue reading...

Compartilhe esta Página