Python过滤多行

时间:2018-04-09 17:29:42

标签: python pandas numpy data-manipulation

我正在使用此查询脚本从api rest获取数据。

Script

完成此操作后,我得到了以下数据:

Dataframe

我是python的新手,我有一些难以理解的如何选择列:

我尝试了以下代码,但它出现了:

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

KeyError: 'Meses'

Data problem

2 个答案:

答案 0 :(得分:1)

您有两个选项来过滤MultiIndex数据帧:

<强> 1。将索引提升为列并按列过滤

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

<强> 2。直接按索引过滤

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

答案 1 :(得分:0)

reset_index()会做

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

您正在使用的代码(link)正在设置多索引和一列

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

只需重置索引即可将其设为df