我想用 2 列参数来定位一个数据框:如果我paises_cpm = df.loc[a]正在工作,但如果我这样做,paises_cpm = df.loc[a,b]我会收到一个错误: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)
Run Code Online (Sandbox Code Playgroud) 我需要在Impresiones_exchange值超过 10 的列中过滤我的 CSV 。当我这样做时,我收到一个新的 CSV ( ssss.csv),只有一个列和一个 True 或 False 值。df["eCPM_a_pagar_a_medio"]正如我之前所说,我需要过滤大于 10 的值。
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')
Run Code Online (Sandbox Code Playgroud)