【发布时间】:2019-03-29 11:47:32
【问题描述】:
我正在尝试学习使用过滤器根据以下条件获取行。
- 检查 col-a 是否包含 T2 和
- 检查 col-b 的时间戳是否介于 7 和 9 之间
我认为过滤器是一种很酷的方法,只需几行代码。但是我无法获得满足上述条件的行的所需输出。还有什么其他简单的pythonic方法可以做到这一点(也许在哪里?)。对于理解过滤器如何工作的任何帮助,我将不胜感激。
import pandas as pd
dict = {'col-a': ['abcd.T1.123', 'xyz.T2.456', 'xyz.T2.456'],
'col-b': ['07:57:00', '09:17:00', '12:57:00'],
}
# Filtering based on col-a - contains T-id
original_df = pd.DataFrame(dict)
print("\n ORIGINAL DF\n", original_df)
filtered_a_df = original_df.filter(like='.T2', axis=0)
print("\n FILTERED DF\n", filtered_a_df)
# Filtering based on col-b - time between 7 and 9
filtered_b_df = original_df.filter(regex='^0[79]:', axis=0)
print("\n FILTERED DF\n", filtered_b_df)
【问题讨论】:
标签: python-3.x pandas dataframe filter