考虑 DataFrame data
:
one two three four
Ohio 2013-01-01 1 2 3
Colorado 2014-01-05 5 6 7
Utah 2015-05-06 9 10 11
New York 2016-10-11 13 14 15
我想仅使用年份是给定年份的标准来提取行,例如 data['one'][:][0:4] == '2013'
。但是命令 data['one'][:][0:4]
返回
Ohio 2013-01-01
Colorado 2014-01-05
Utah 2015-05-06
New York 2016-10-11
Name: one, dtype: object
我认为这是正确的做法,因为命令 data['one'][0][0:4]
返回
'2013'
为什么不同,正确的方法是什么?
最佳答案
由于 'one'
列由日期组成,因此最好让 pandas 将其识别为日期,而不是将其识别为字符串。您可以使用 pd.to_datetime
来执行此操作:
df['one'] = pd.to_datetime(df['one'])
这使您可以过滤日期属性,而无需担心切片字符串。例如,您可以使用 Series.dt.year
检查年份:
df['one'].dt.year == 2013
将它与 loc
结合使用可以让您获得年份为 2013 的所有行:
df.loc[df['one'].dt.year == 2013, :]
关于python - 切片数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36798323/