Trabalhando com arquivo .dat [RESOLVIDO]

1. Trabalhando com arquivo .dat [RESOLVIDO]

Maiara
maiaragomes

(usa Ubuntu)

Enviado em 25/07/2016 - 23:15h

Olá pessoal,
Desejo a ajudade vocês. Estou trabalhando com um arquivo ".dat" o qual possui mais de 3000 linhas e 4 colunas. As colunas de interesse são a 3 e a 4. Na terceira eu possuo números de 1 a 4. Desejo saber quantos elementos de número 2 constam nessa terceira coluna. Sabem dizer também se tenho como associar o valor corresponder na quarta coluna para cada número 2 existente na terceira coluna?


  


2. MELHOR RESPOSTA

Lisandro Guerra
Lisandro

(usa Arch Linux)

Enviado em 26/07/2016 - 19:09h

DesianeGomes escreveu:

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.


OK:


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

print ('Total de %d resultados encontrados: ' %len(results))
print ('Somatória: %f ' %sum(results))
print ('Média: %f ' %(sum(results)/len(results)))
for register in results:
print (register)


3. Re: Trabalhando com arquivo .dat

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 26/07/2016 - 00:43h

Poste um pedaço desse arquivo fica mais fácil do pessoal ajudar ^_^





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


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

Maiara
maiaragomes

(usa Ubuntu)

Enviado em 26/07/2016 - 09:49h


import numpy as np
import math
import sys

# Abre arquivos de dados numéricos
dataFile= open ("dadofiles.dat", "r")
data= np.loadtxt(dataFile, dtype=float, usecols=None)
c= 0
for i in range(3000):
if abs(data[i][2]) ==2.0:
print abs(data[i][2])

Quando tiver valores iguais a 2 na terceira coluna desejo saber quantos números 2 aparecem.


5. Trabalhando com arquivo .dat

Edmar
edmarssouzap

(usa Debian)

Enviado em 26/07/2016 - 10:53h

Bom dia!!!

Amiga, posta um trecho do arquivo .dat com as colunas, assim poderemos ajudar melhor.
Até.



6. Re: Trabalhando com arquivo .dat

Lisandro Guerra
Lisandro

(usa Arch Linux)

Enviado em 26/07/2016 - 12:20h

DesianeGomes escreveu:


import numpy as np
import math
import sys

# Abre arquivos de dados numéricos
dataFile= open ("dadofiles.dat", "r")
data= np.loadtxt(dataFile, dtype=float, usecols=None)
c= 0
for i in range(3000):
if abs(data[i][2]) ==2.0:
print abs(data[i][2])

Quando tiver valores iguais a 2 na terceira coluna desejo saber quantos números 2 aparecem.


3 perguntinhas:
1) Qual tua linguagem de programação principal ? (não é Python né)
2) Tem que ser em Python 2 ?
3) Isto é trabalho acadêmico ou do teu trabalho ?


OBS: uma linha do arquivo já ajudaria, vejo pelo teu código que os dados são números flutuantes, mas na pergunta não esclarece isso.
Abraço



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

Maiara
maiaragomes

(usa Ubuntu)

Enviado em 26/07/2016 - 13:37h

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.


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

Maiara
maiaragomes

(usa Ubuntu)

Enviado em 26/07/2016 - 13:38h

edmarssouzap escreveu:

Bom dia!!!

Amiga, posta um trecho do arquivo .dat com as colunas, assim poderemos ajudar melhor.
Até.


Exemplo:

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
1 1202 3 1.000000
1 1239 2 8.508842
2 708 3 1.000000




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

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 26/07/2016 - 14:02h

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
----------------------------------------------------------


10. Re: Trabalhando com arquivo .dat

Lisandro Guerra
Lisandro

(usa Arch Linux)

Enviado em 26/07/2016 - 14:03h

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.


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

Lisandro Guerra
Lisandro

(usa Arch Linux)

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

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)



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

Maiara
maiaragomes

(usa Ubuntu)

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

Obrigada, pessoal. Retorno já após os testes.



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts