Como atribuir valores NaN para um intervalo de dados variável

483 views
Skip to first unread message

Patrick Coser

unread,
Jun 1, 2018, 3:12:22 PM6/1/18
to Python Brasil
Tenho um DataFrame com algumas variáveis (Temperatura, Pressão, umidade, ... ), meu problema é :

 - Eu tenho os dados de pressão total que vária de 20 em 20 min e quero que 10% desse valor seja atribuido NaN.

O processamento dos dados é feito por número de células medidas de 1 em 1 metro, por exemplo...

se minha profundidade é de quatro metros eu terei 4 células apresentadas no resultado, sendo que a última célula é a superfície e a primeira célula é a mais funda.  Entretanto 10% do valor total da pressão tem que ser atribuído NaN por conta da variação da superfície livre, ou seja, a ultima célula que sentirá essas atribuições.

Não tenho conhecimento e nem muitas ideias para realizar este procedimento.

Rod Limão

unread,
Jun 1, 2018, 4:37:25 PM6/1/18
to python...@googlegroups.com
Patrick, eu estou com algumas dúvidas e vou usar o contexto abaixo para facilitar minhas perguntas, ok?

Contexto: Cada célula possui um DataFrame com: TPUXYZ, ou seja: Temperatura, Pressão, Umidade, X, Y, Z (outras variáveis) e ficam armazenadas de 1 em 1 metro de profundidade. Pois bem,...

# 1 - A medição de cada variável é feita no mesmo intervalo de tempo? Ou seja, se você mede a pressão de 20 em 20 minutos então você mede todas as outras variáveis nesse mesmo intervalo de tempo?
# 2 - O que significa valor total? A soma dos valores de uma variável em todas as células? A soma dos valores de cada célula em um intervalo de tempo?
# 3 - Esses 10% são atribuídos apenas na última célula ou ao "valor total"? 
# 4 - Você já está usando alguma biblioteca como: numpy? math? ou apenas float('nan')?

Eu não fazia ideia do que era esse tal de "NaN", mas encontrei:

NaN

NaN significa Not a Number que quer dizer que não é um número. Tem algumas formas diferentes de chegar a este valor. Uma delas é a que viu com float("NaN"):

>>> float("NaN")
nan

Outra seria subtraindo infinito a infinito:

>>> float("inf") - float("inf")
nan

Qualquer operação aritmetica sobre um nan irá dar na mesma um nan:

>>> float("nan") * 5
nan

Também tem a função isnan que testa se é nan:

>>> math.isnan(float("nan"))
True
>>> math.isnan(25)
False

Ou seja, se qualquer operação atribuída a uma constante NaN é igual a NaN, então não entendi porque você quer atribuir 10%.




RLC


--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasil+unsubscribe@googlegroups.com
---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasil+unsubscribe@googlegroups.com.
Para postar nesse grupo, envie um e-mail para python...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/python-brasil/75f9081d-e8de-4cee-a3fc-f9976d5e98e2%40googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages