У меня есть dataframe
, где имена столбцов имеют тот же формат: data_sensor
, где дата в формате yymmdd
. Вот его подмножество: введите описание изображения здесь
Учитывая последние данные (180722
), я хотел бы сохранить столбец в соответствии с предварительно определенным приоритетом датчика. Например, я хотел бы определить, что SN1
важнее, чем SK3
. Таким образом, желаемый результат будет таким же dataframe
, только без столбца 180722_SK3
. Количество столбцов с одинаковой последней датой может быть больше двух.
Это решение, которое я реализовал:
sensorsImportance = ['SN1', 'SK3'] #list of importence, first item is the most important
sensorsOrdering = {word: i for i, word in enumerate(sensorsImportance)}
def remove_duplicate_last_date(df,sensorsOrdering):
s = []
lastDate = df.columns.tolist()[-1].split('_')[0]
for i in df.columns.tolist():
if lastDate in i:
s.append(i.split('_')[1])
if len(s)>1:
keepCol = lastDate +'_'+sorted(s, key=sensorsOrdering.get)[0]
dropCols = [lastDate +'_'+i for i in sorted(s, key=sensorsOrdering.get)[1:]]
df.drop(dropCols,axis=1,inplace=True)
return df
Оно работает нормально, однако я считаю, что это слишком громоздко , есть способ лучше?