Trabalhando com arquivo .dat [RESOLVIDO]

13. Re: Trabalhando com arquivo .dat [RESOLVIDO]

Maiara
maiaragomes

(usa Ubuntu)

Enviado em 26/07/2016 - 15:35h

ctw6av escreveu:

Bom saber quantos dígitos 2 há na coluna 3 é relativamente fácil mas eu não entendi a parte de associar os dígitos com a coluna 4:
#!/usr/bin/env python3

f = open('/home/ctw6av/file.dat', 'r')
file = f.readlines()
cont = 0

for line in file:
coluns = line.split()
for digit in coluns[2]:
if int(digit) == 2:
cont += 1

print(cont)




----------------------------------------------------------
Debiano com uma pitada de slack
----------------------------------------------------------


Obrigada! Foi grande a ajuda.
A questão de relacionar com os elementos da coluna seria assim:

0 331 2 4.711366
0 1085 3 1.000000
0 1550 2 9.893358
0 1978 4 1.000000
1 567 1 70.279592
1 1055 2 1.396788

Com os dados da tabela acima veja que na terceira coluna eu tenho três vezes o número 2, onde o primeiro corresponde a 4.711366, o segundo a 9.893358 e o terceiro a 1.396788. Desejo agora somar esses três valores e fazer a média. Nesse caso tratando-se de apenas três ocorrências é trivial, mas para 1336 não. Caso possas ajudar!! Muito grata. Abração.



  


14. Re: Trabalhando com arquivo .dat [RESOLVIDO]

Maiara
maiaragomes

(usa Ubuntu)

Enviado em 26/07/2016 - 15:39h

Lisandro escreveu:

Lisandro escreveu:

DesianeGomes escreveu:

Cara, tenho usado Python. Por que em Python 2? Estou fazendo por curiosidade, pois sempre uso arquivos .dat com a finalidade de plotar gráficos e etc, mas meu interesse nesse caso é ver quantas vezes um certo dado se repete. Programava antes em C, mas deixei.


OK. Pela estrutura achei que era C mesmo ;-D

Em Python 3, independente do número de linhas no arquivo ficaria assim:

file = open('teste2.dat', 'r')
results = list()
for line in file:
columns = line.split()
if float(columns[2]) == 2:
results.append(columns[2:4])

print ('Total de %d resultados encontrados: ' %len(results))
for register in results:
print (register)


Pelo que vi no teu exemplo de dados poderia substituir o float por int tranquilamente.


Ou talvez queira no resultado o número da linha e o valor da coluna , ai ficaria algo assim:


file = open('teste2.dat', 'r')
results = list()
counter = 0
for line in file:
counter += 1
columns = line.split()
if float(columns[2]) == 2:
results.append([counter, columns[3]])

print ('Total de %d resultados encontrados: ' %len(results))
for register in results:
print (register)


Obrigada, Lisandro. Foi essencial também a sua ajuda. Agora estou imbuída de poder relacionar com os elementos da quarta coluna. Seria assim:

0 331 2 4.711366
0 1085 3 1.000000
0 1550 2 9.893358
0 1978 4 1.000000
1 567 1 70.279592
1 1055 2 1.396788

Com os dados da tabela acima veja que na terceira coluna eu tenho três vezes o número 2, onde o primeiro corresponde a 4.711366, o segundo a 9.893358 e o terceiro a 1.396788. Desejo agora somar esses três valores e fazer a média. Nesse caso tratando-se de apenas três ocorrências é trivial, mas para 1336 não. Caso possas ajudar!! Muito grata. Abração.


15. Re: Trabalhando com arquivo .dat

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 26/07/2016 - 15:46h

Seria isso:

#!/usr/bin/env python3

f = open('/home/ctw6av/file.dat', 'r')
file = f.readlines()
total = 0
cont = 0

for line in file:
coluns = line.split()
for digit in coluns[2]:
if int(digit) == 2:
total += float(coluns[3])
cont += 1

print('Quantidade de ocorrências: {}\n'
'Média: {}'.format(cont, (total / cont)))




----------------------------------------------------------
Debiano com uma pitada de slack
----------------------------------------------------------


16. Re: Trabalhando com arquivo .dat [RESOLVIDO]

Maiara
maiaragomes

(usa Ubuntu)

Enviado em 26/07/2016 - 16:52h

ctw6av escreveu:

Seria isso:

#!/usr/bin/env python3

f = open('/home/ctw6av/file.dat', 'r')
file = f.readlines()
total = 0
cont = 0

for line in file:
coluns = line.split()
for digit in coluns[2]:
if int(digit) == 2:
total += float(coluns[3])
cont += 1

print('Quantidade de ocorrências: {}\n'
'Média: {}'.format(cont, (total / cont)))




----------------------------------------------------------
Debiano com uma pitada de slack
----------------------------------------------------------


Quando coloco a parte de imprimir o total ele não realiza a média apenas dos elementos da coluna 4 que correspondem aos de número 2 da tabela 3.



17. Re: Trabalhando com arquivo .dat [RESOLVIDO]

Maiara
maiaragomes

(usa Ubuntu)

Enviado em 26/07/2016 - 16:54h

ctw6av escreveu:

Seria isso:

#!/usr/bin/env python3

f = open('/home/ctw6av/file.dat', 'r')
file = f.readlines()
total = 0
cont = 0

for line in file:
coluns = line.split()
for digit in coluns[2]:
if int(digit) == 2:
total += float(coluns[3])
cont += 1

print('Quantidade de ocorrências: {}\n'
'Média: {}'.format(cont, (total / cont)))




----------------------------------------------------------
Debiano com uma pitada de slack
----------------------------------------------------------


PERDÃO! Corretíssimo. rsrs. Eu testei errado. Obrigada, meu caro. Abração.



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts