python - 切片数据框

标签 python pandas

考虑 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/

相关文章:

python - 如何在 Eclipse 中将 PIL 添加到 PyDev,以便我可以导入它并在我的项目中使用它?

python - 按最小索引号对 Pandas 数据框组进行排序,然后根据第三列对组内的所有其他列重新排序

python - 对象、列表和我老化的大脑

python - Cython 子类化 "First base of"... "is not an extension type"即使它是用 cdef 定义的

python - 使用替换方法替换 Python 中字符串中的值不起作用

python - 用其上方单元格的值填充 Pandas 数据框中的空白单元格

python - 将列索引字符串附加到 DataFrame 列

python - 如何将字典列表转换为数据框?

python - 在外部文件中保存 Python 字典?

python - 二进制字段下载链接在 Odoo 的 one2many 字段内的 TreeView 或 ListView 中使用