我有以下子集,其中包含开始日期(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
我试图在表中循环并使用索引,但找不到合适的方法来遍历数据帧行。
答案 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
不确定是否有内置方法不会将此设置为将其转换为时间序列索引的索引。