[英]How to filter one condition and extract the data based on the filtered condition in python?
我有点坚持使用代码来提取我想要的条件。
我想要做的是我想过滤标签 AB0150 的最大值并基于该数字日期然后我想过滤具有该数字的数据。
这是我的数据示例。 我有 3 个月的数据和大约 31 个不同的标签。
ID TIME Machine_NO TAG VALUE
99959 2020-11-13 19:34:00 409301 AB0150 63.59
99959 2020-12-15 17:55:00 409302 AB0151 0.00
99959 2020-11-05 01:25:00 409303 AB0152 499.65
99959 2021-01-01 00:05:00 409301 AB0153 80.00
99959 2020-11-13 19:34:00 409301 AB0150 50.59
99959 2020-11-13 19:34:00 409301 AB0150 53.59
99959 2020-12-13 19:59:00 409301 AB0150 12.5
99959 2021-01-11 15:22:00 409301 AB0150 21.3
99959 2020-12-15 17:55:00 409302 AB0151 4.69
99959 2020-11-21 05:16:00 409303 AB0152 2133
99959 2020-11-13 19:34:00 409301 AB0151 700
99959 2020-11-13 19:34:00 409302 AB0152 35.5
99959 2020-11-13 19:34:00 409303 AB0153 2159
以下是到目前为止的代码。
df.sort_values(by=['TAG','VALUE'], ascending=False).drop_duplicates(subset=['TAG'],keep='first')
df_check=df[df['TIME']=='2020-11-13 19:34:00']
我想要一些自动代码,如果我更改日期范围,我需要更改日期。 我想过滤最大的标签和 select 日期并立即提取具有该日期的数据。 有什么好的方法可以做到这一点吗?
这是所需的 output。
ID TIME Machine_NO TAG VALUE
99959 2020-11-13 19:34:00 409301 AB0150 63.59
99959 2020-11-13 19:34:00 409301 AB0151 700
99959 2020-11-13 19:34:00 409302 AB0152 35.5
99959 2020-11-13 19:34:00 409303 AB0153 2159
谢谢
你非常接近你想要的。 将sort_values
步骤中生成的 dataframe 存储为它自己的 dataframe 并使用.iat()
从第一行(索引 0)和 TIME 列(第二列;索引 1)中提取TIME
。 然后按该 TIME 值过滤:
df_time = df.sort_values(by=['TAG','VALUE'], ascending=False).drop_duplicates(subset=['TAG'], keep='first')
MAX_TIME = df_time.iat[0, 1]
# '2020-11-13 19:34:00'
如果 TIME 不一定是第二列,请使用它从第一行获取 TIME:
MAX_TIME = df_time.iat[0, df_time.columns.get_loc('TIME')]
然后用 MAX_TIME 过滤原始 df:
df_check = df[df['TIME'] == MAX_TIME]
# Result:
ID TIME Machine_NO TAG VALUE
0 99959 2020-11-13 19:34:00 409301 AB0150 63.59
4 99959 2020-11-13 19:34:00 409301 AB0150 50.59
5 99959 2020-11-13 19:34:00 409301 AB0150 53.59
10 99959 2020-11-13 19:34:00 409301 AB0151 700.00
11 99959 2020-11-13 19:34:00 409302 AB0152 35.50
12 99959 2020-11-13 19:34:00 409303 AB0153 2159.00
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.