Python 用熊猫过滤CSV

Python 用熊猫过滤CSV,python,pandas,csv,Python,Pandas,Csv,我需要在impressions\u 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","

我需要在
impressions\u 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')

使用
query
我可以过滤csv列的值并获取所有列

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)
替换此行:

a = df['Impresiones_exchange'] > 10
比如说:

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

代码不起作用的原因是
a
设置为布尔级数。事实上,您想要的是使用布尔序列对数据帧进行索引。

我发现:
df.query('impressiones\u exchange>10')
。您对此有何看法?我认为
df[df['Impressiones_exchange']>10]
更为透明。如果下面的一个答案有帮助,请随意接受(勾选左侧),以便其他用户可以看到接受的答案。