如何创建包含特定值的新pandas DataFrame?

时间:2016-06-15 08:41:59

标签: python pandas

我有一个pandas DataFrame,其中包含YearMonth(表示为整数)的值,如下所示:

df.head(5)
    Year    Month   
0   1997    1   
1   1997    8
2   2010    9
3   1998    1
4   2009    10
  

我想创建一个仅包含年份值1996,2000,2002的新DataFrame

我几乎没有使用过python或pandas所以我在这里徘徊,我试过了:

df2 = df.ix[df.year = 1996 and df.year = 2000 and df.year = 2002 ['year', 'month']]

但这不起作用 - 有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

使用isin并传递您的列表以过滤df:

In [168]:
df = pd.DataFrame({'Year':np.arange(1997,2010), 'Month':np.arange(13)})
df[df['Year'].isin([1996, 2000, 2002])]

Out[168]:
   Month  Year
3      3  2000
5      5  2002

您尝试的内容失败,因为and不理解数组之类的比较,您需要使用按位&并将条件括在括号中:

df2 = df.ix[(df.year == 1996) & (df.year == 2000) & (df.year == 2002)]

此外=的分配与等式==

不同