Я хочу рассчитать среднее время для последовательностей AD-VV-DD
и AD-MM-PP
. Эта последовательность может отображаться в любых столбцах MD_*
. Для вычисления среднего времени, столбцы TIME_*
следует использовать:Как рассчитать средние значения по различным столбцам?
df =
MD_1 MD_2 MD_3 MD_4 MD_5 TIME_1 TIME_2 TIME_3 TIME_4 TIME_5
NaN AD VV DD NaN NaN 3 2 1 NaN
AD VV DD NaN NaN 1 1 1 NaN NaN
AD MM PP NaN NaN 4 3 3 NaN NaN
TT AD MM NaN NaN 2 4 NaN NaN NaN
Результат должен быть такой:
result =
MD_1_new MD_2_new MD_3_new TIME_1_new TIME_2_new TIME_3_new
AD VV DD 2 1.5 1
AD MM PP 4 3 3
The TIME_*
столбцы первой строки были вычислены следующим образом: в df
есть два последовательности AD-VV-DD
. Столбцы TIME_X
выбираются на основе значений X
в MD_X
.
Это то, что я пытался, но как рассчитать средние значения соответствующих TIME_*
:
def calculate_mean_times(df):
# Create drop rows
drop_rows = []
index = 0
for index, x in df.iterrows():
row = x.dropna()
if ((row[0] == 'AD') & (row[1] == 'VV') & (row[2] == 'DD')):
drop_rows.append(index)
index = index + 1
return drop_rows
# Drop the rows in list
correct_rows = calculate_mean_times(df)
df = df.loc[correct_rows,:]
Пробовали ли вы что-нибудь? Какой результат вы получили? – Vaishali
@VaishaliGarg См. Мое обновление. – user7379562