I´m tying to loc a dataframe with 2 columns parameters:
if I do paises_cpm = df.loc[a]is working but if I do paises_cpm = df.loc[a,b] I receive an error: IndexingError: Unalignable boolean Series provided as indexer (index of the boolean Series and of the indexed object do not match
import pandas as pd
import time
fecha = time.strftime(str((int(time.strftime("%d")))-1))
subastas = int(fecha) * 5000
impresiones = int(fecha) * 1000
df = pd.read_csv('Cliente_x_Pais.csv')
a = df['Subastas'] > subastas
b = df['Impresiones_exchange'] > impresiones
paises_cpm = df.loc[a,b]
paises_cpm.to_csv('paises_cpm.csv', index=False)
You need chain conditions with | for or or & for and:
paises_cpm = df.loc[a | b]
Or:
paises_cpm = df.loc[a & b]
There is possible one line solution, but parentheses are necessary:
paises_cpm = df.loc[(df['Subastas'] > subastas) |
(df['Impresiones_exchange'] > impresiones)
]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With