小编Mar*_*ier的帖子

将 loc 应用于 2 列值 Pandas

我想用 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)

python loc pandas

3
推荐指数
1
解决办法
6791
查看次数

用 Pandas 过滤 CSV

我需要在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)

python csv pandas

3
推荐指数
1
解决办法
4609
查看次数

标签 统计

pandas ×2

python ×2

csv ×1

loc ×1