按日期获取子集数据帧

时间:2014-09-28 20:01:22

标签: python pandas

我有以下子集,其中包含开始日期(DD / MM / YYYY)和金额

   Start Date    Amount
1  01/01/2013      20
2  02/05/2007      10
3  01/05/2004      15
4  01/06/2014      20
5  17/08/2008      21

我想创建此数据框的子集,其中只有开始日期日为01:

   Start Date    Amount
1  01/01/2013      20
3  01/05/2004      15
4  01/06/2014      20

我试图在表中循环并使用索引,但找不到合适的方法来遍历数据帧行。

1 个答案:

答案 0 :(得分:2)

假设您的日期已经是日期时间,那么以下内容应该有效,如果它们是字符串,您可以使用to_datetime df['Start Date'] = pd.to_datetime(df['Start Date'])转换它们,如果需要,您可能还需要传递参数dayfirst = True 。如果您使用read_csv导入数据,则可以在导入时执行此操作df = pd.read_csv('data.csv', parse_dates=[n], dayfirst=True)其中n是索引(当然是0),所以如果是第一个则通过parse_dates=[0]

一种方法可以是将lambda应用于列并使用返回的boolean索引进行索引:

In [19]:

df[df['Start Date'].apply(lambda x: x.day == 1)]
Out[19]:
       Start Date  Amount
index                   
1     2013-01-01      20
3     2004-05-01      15
4     2014-06-01      20

不确定是否有内置方法不会将此设置为将其转换为时间序列索引的索引。