【发布时间】:2012-08-17 10:47:01
【问题描述】:
我有一个 Python pandas DataFrame rpt:
rpt
<class 'pandas.core.frame.DataFrame'>
MultiIndex: 47518 entries, ('000002', '20120331') to ('603366', '20091231')
Data columns:
STK_ID 47518 non-null values
STK_Name 47518 non-null values
RPT_Date 47518 non-null values
sales 47518 non-null values
我可以像这样过滤股票 id 为'600809' 的行:rpt[rpt['STK_ID'] == '600809']
<class 'pandas.core.frame.DataFrame'>
MultiIndex: 25 entries, ('600809', '20120331') to ('600809', '20060331')
Data columns:
STK_ID 25 non-null values
STK_Name 25 non-null values
RPT_Date 25 non-null values
sales 25 non-null values
我想把一些股票的所有行放在一起,例如['600809','600141','600329']。这意味着我想要这样的语法:
stk_list = ['600809','600141','600329']
rst = rpt[rpt['STK_ID'] in stk_list] # this does not works in pandas
既然pandas不接受上面的命令,那么如何实现目标呢?
【问题讨论】:
-
stk_list = ['600809','600141','600329'] result=filter(lambda item: item in stk_list,df['STK_ID']) 您可以使用 filter 来获取列表可迭代的项目。