У меня есть несколько функций, которые создают новые столбцы в кадре данных pandas в зависимости от существующих столбцов в кадре данных. У меня есть два разных сценария, которые возникают здесь: (1) кадр данных НЕ является мультииндексным и имеет набор столбцов, скажем, [a, b] и (2) кадр данных является мультииндексным и теперь имеет один и тот же набор заголовков столбцов, повторяющихся N раз , скажем [(a,1),(b,1),(a,2),(b,2)....(a,N),(n,N)].
Я делал вышеупомянутые функции в стиле, показанном ниже:
def f(df):
if multiindex(df):
for s df[a].columns:
df[c,s] = someFunction(df[a,s], df[b,s])
else:
df[c] = someFunction(df[a], df[b])
Есть ли другой способ сделать это, не имея везде этих операторов if-multi-index/else и не дублируя код someFunction? Я бы предпочел НЕ разбивать мультииндексированный фрейм на N меньших фреймов данных (мне часто нужно фильтровать данные или делать что-то и поддерживать согласованность строк во всех 1,2,... N фреймах и хранить их вместе в одном фрейме кажется, это лучший способ сделать это).