Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Filter CSV with pandas

Tags:

python

pandas

csv

I need to filter my CSV in Impresiones_exchangecolumn with values more than 10. when I did it, I receive a new CSV (ssss.csv) with only a column and a True or False value. I need after df["eCPM_a_pagar_a_medio"] filter for values more than 10 as I said before.

def group():
    df = pd.read_csv('Impresiones_VIDEO.csv', sep=',')
    df = df.groupby(["Cliente","Sitio","Country"], as_index=False)['Subastas', 'Impresiones_exchange', 'Importe_a_cobrar', 'Importe_a_pagar_a_medio'].sum()
    df["Fill_rate"] = ((df.Impresiones_exchange / df.Subastas )* 100).round(2)
    df["eCPM_a_cobrar"] = ((df.Importe_a_cobrar / df.Impresiones_exchange )* 1000).round(2)
    df["eCPM_a_pagar_a_medio"] = ((df.Importe_a_pagar_a_medio / df.Impresiones_exchange )* 1000).round(2)
    a = df['Impresiones_exchange'] > 10
    a.to_csv('ssss.csv')
like image 970
Martin Bouhier Avatar asked Oct 24 '25 16:10

Martin Bouhier


2 Answers

Replace this line:

a = df['Impresiones_exchange'] > 10

With something like this:

a = df[df['Impresiones_exchange'] > 10]

The reason your code does not work is your a is set to a Boolean series. In fact, what you want is to use the Boolean series to index the dataframe.

like image 115
jpp Avatar answered Oct 26 '25 11:10

jpp


With query I can filter the values of a csv column and take all columns!

def group():
    df = pd.read_csv('Impresiones_VIDEO.csv', sep=',')
    df = df.groupby(["Cliente","Sitio","Country"], as_index=False)['Subastas', 'Impresiones_exchange', 'Importe_a_cobrar', 'Importe_a_pagar_a_medio'].sum()
    df["Fill_rate"] = ((df.Impresiones_exchange / df.Subastas )* 100).round(2)
    df["eCPM_a_cobrar"] = ((df.Importe_a_cobrar / df.Impresiones_exchange )* 1000).round(2)
    df["eCPM_a_pagar_a_medio"] = ((df.Importe_a_pagar_a_medio / df.Impresiones_exchange )* 1000).round(2)
    df_filtered = df.query('Impresiones_exchange>10')
    df_filtered.to_csv('Impresiones_VIDEO.csv', index=False)
like image 43
Martin Bouhier Avatar answered Oct 26 '25 11:10

Martin Bouhier



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!