Я написал фрейм данных pandas, чтобы найти экземпляры, в которых «instanceList» хранит все подробности экземпляра.
instanceList = [
[
"web-mgmt",
"i-0268214908adb3949",
"running",
"2019-05-06 13:30:11+00:00"
],
[
"app-srv-1",
"i-088d90fe72g67fb4c",
"running",
"2019-06-04 03:46:03+00:00"
],
[
"web-mgmt",
"i-0cwewrgbr45fc8823",
"running",
"2019-05-22 14:45:32+00:00"
]
]
df = pd.DataFrame(instanceList, columns=['InstanceName', 'InstanceId', 'InstanceState', 'LaunchTime'])
df['Dates'] = pd.to_datetime(df['LaunchTime']).dt.date
df['Time'] = pd.to_datetime(df['LaunchTime']).dt.time
del df['LaunchTime']
Выходные данные для этого фильтра:
InstanceName InstanceId InstanceState Dates Time
2 web-mgmt i-0268214908adb3949 running 2019-04-19 14:25:11
3 app-srv-1 i-088d90fe72g67fb4c running 2019-06-04 03:46:03
5 web-mgmt i-0cwewrgbr45fc8823 running 2019-05-06 10:30:10
Теперь я хочу выполнить требование ниже:
a.Найти дубликаты на основе имени тега.Если дубликатов нет, распечатайте сообщение.
b.Если дубликат найден, удалите последний экземпляр, посмотрев на дату, чтобы я мог получить все более старые экземпляры в списке.
Пока что я могу найти дубликаты экземпляров со значением ниже
# Find duplicate instance based on tag name
duplicateRows = df[df.duplicated(['InstanceName'], keep=False)]
print(duplicateRows, sep='\n')
вывод ниже таблицы.
InstanceName InstanceId InstanceState Dates Time
2 web-mgmt i-0268214908adb3949 running 2019-04-19 14:25:11
5 web-mgmt i-0cwewrgbr45fc8823 running 2019-05-06 10:30:10
Есть ли способ поместить оператор с условием, подобным этому?не в состоянии понять, пожалуйста, помогите мне.
if df<SOMETHING> >= 1
duplicateRows = df[df.duplicated(['InstanceName'], keep=False)]
latest = duplicateRows.max()
older = duplicateRows.drop(latest) <<-- error: datetime.time(14, 25, 11)] not found in axis
print(older)
else:
print message