python - 如何根据列名属性对 Pandas 数据框进行切片?

标签 python python-3.x pandas dataframe

我有一个数据框,其中列名是这样的数据时间对象:

            17:02:00    17:03:00 ...    
2017-09-18  1236.0      463.0   
2017-09-19  791.0       476.0   
2017-09-20  2086.0      988.0   

如何根据伪代码中的列名值选择数据框的一部分:

df_slice = df.column_name >= datetime.time(8, 30) & df.column_name < datetime.time(9, 0)

最佳答案

我认为您需要先通过 to_datetime 将值转换为 times + time然后按条件选择列:

df.columns = pd.to_datetime(df.columns).time

df_slice = df.loc[:, (df.columns >= datetime.time(8, 30)) & 
                     (df.columns < datetime.time(9, 0))]

示例:

print (df)
            17:02:00  08:45:00
2017-09-18    1236.0     463.0
2017-09-19     791.0     476.0
2017-09-20    2086.0     988.0

df.columns = pd.to_datetime(df.columns).time

df_slice = df.loc[:, (df.columns >= datetime.time(8, 30)) & 
                     (df.columns < datetime.time(9, 0))]

print (df_slice)
            08:45:00
2017-09-18     463.0
2017-09-19     476.0
2017-09-20     988.0

感谢 @Zero 简化回答:

df.loc[:, (df.columns > '08:30:00') & (df.columns < '09:00:00')]

关于python - 如何根据列名属性对 Pandas 数据框进行切片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46427874/

相关文章:

python - 在安装的驱动器上创建虚拟环境时不允许操作

python - 有没有一种简单的方法可以在 matplotlib 中为滚动的垂直线设置动画?

python - 从 3.7 开始,字典中的 PopItem 返回最后插入的对。字典无序怎么办

python-3.x - 如何将 if-else 语句与 python pandas dataframe isna() 函数一起使用?

python - 神秘时间转换( Pandas 和日期时间)

python - 在另一个循环运行时更新 tkinter 标签

python - Matplotlib编译错误: TypeError: unorderable types: str() < int()

python - 为类(class)定制双星运营商?

python - Pandas 无法正确显示系列值

python - 将一个函数绑定(bind)到kivy中的多个动态创建的按钮?