简体   繁体   English

Python过滤多行

[英]Python Filter multiple row

I am using this query script to get data from api rest. 我正在使用此查询脚本从api rest获取数据。

Script 脚本

After doing this, I got the following data: 完成此操作后,我得到了以下数据:

Dataframe 数据帧

I am new in python, and I have some difficult to understand how do I select columns: 我是python的新手,我很难理解如何选择列:

I tried this following code, but it appears: 我尝试了以下代码,但出现了:

df1 = df[(df['Meses'] != 'Total') & (df['Orcado x Realizado'] == 'Realizado')]

KeyError: 'Meses'

Data problem 资料问题

You have 2 options to filter a MultiIndex dataframe: 您有2个过滤MultiIndex数据框的选项:

1. Elevate index to columns and filter by columns 1.将索引提升到列并按列过滤

df = df.reset_index()
df1 = df[(df['Meses'] != 'Total') & (df['Orcado x Realizado'] == 'Realizado')]

2. Filter by index directly 2.直接按索引过滤

df1 = df[(df.index.get_level_values('Meses') != 'Total') &
         (df.index.get_level_values('Orcado x Realizado') == 'Realizado')]

reset_index() will do reset_index()将做

>>> df.reset_index()["Meses"]

The code you're using ( link ) is setting multi index and one column though 您正在使用的代码( link )设置多索引和一列

index = pd.MultiIndex.from_tuples(keylist, names=dimension_names)
... 
df = pd.DataFrame(values, index=index, columns=["Values"])

Just reset the index to make it a flat df . 只需将索引重置为平坦的df

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM