Eu estou um pouco confuso quanto a lógica por trás dessa parte do código.
A = data.shape[0]
data.dropna(subset = ['Valor'], inplace=True)
B = data.shape[0]
A-B
Se inplace = True, logo o DataFrame "data" é alterado. Se ele é alterado, por que o B ao puxar da origem "data" também não foi alterado?