LabIFSC icon indicating copy to clipboard operation
LabIFSC copied to clipboard

Pandas

Open jmarcellopereira opened this issue 3 years ago • 3 comments

Olá a todos. Gostei do pacote e estou usando nas aulas de física experimental no ifc luzerna em Santa Catarina. Quando uso o pacote em conjunto com o pandas ocorre isto:

from uncertain_panda import pandas as pd
import pandas as pd

Tabela = pd.DataFrame()

Tabela['Massa'] = [Medida((0.51, 0.01)),Medida((0.61, 0.01)), Medida((0.74, 0.01)), Medida((0.59, 0.01))]
Tabela['g'] = [Medida((9.78, 0.02)), Medida((9.81, 0.02)), Medida((9.88, 0.02)), Medida((9.78, 0.02))]

forca = pd.DataFrame()
forca['Forca'] = []

for i in range(0, 2):
   forca.loc[i] = [Tabela.Massa[[i]] * Tabela.g[[i]]]

forca
Força
0 0 5.0±0.1
dtype: object
1
1 6.0±0.1
dtype: object

Como retirar a informação "dtype: object" do dataframe?

jmarcellopereira avatar Nov 11 '21 21:11 jmarcellopereira

Não sei se isso é possível. Nunca tentei misturar essa biblioteca com o Pandas.

gjvnq avatar Nov 12 '21 01:11 gjvnq

Não sei se isso é possível. Nunca tentei misturar essa biblioteca com o Pandas.

Tranquilo

jmarcellopereira avatar Nov 17 '21 19:11 jmarcellopereira

@jmarcellopereira é possível utilizar matrizes do numpy com o fork que criei, o que soluciona o seu problema, já que o numpy implementa a multiplicação elemento-elemento de matrizes. Basta instalar o fork:

pip install git+https://github.com/brenopelegrin/LabIFSC.git

E então, o código fica:

from LabIFSC import *
import pandas as pd
import numpy as np

Tabela = pd.DataFrame()

Tabela['Massa'] = M(np.array([0.51, 0.61, 0.74, 0.59]), incerteza=0.01)
Tabela['g'] = M(np.array([9.78, 9.81, 9.88, 9.78]), incerteza=0.02)

forca = pd.DataFrame()
forca['Forca'] = []

#Ao invés do for i in range(0,2), podemos fazer um slice do dataframe:
forca['Forca'] = Tabela['Massa'].iloc[0:2] * Tabela['g'].iloc[0:2]

forca

E então, seu output será:

Forca
0	(5.0±0.1)
1	(6.0±0.1)

brenopelegrin avatar Feb 06 '23 17:02 brenopelegrin