Я хотел бы, чтобы сгладить иерархическую мультииндексный к плоскому ИндексуКак сгладить MultiIndex методом/выражением в Pandas?
Теоретически, сопоставляя df1.columns
делает рабочие места, однако мне интересно, есть ли способ вызова с использованием лямбды для делать это ?! Это сделало бы более приятным программирование труб.
import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.normal(size=(10,2)), columns=list("ab"))
df1 = (df
.rolling(2)
.agg(["min", "max"])
)
df1.columns = df1.columns.map("{0[0]}_{0[1]}".format)
df1
Могу ли я заменить столбцы в вызове метода с лямбда - следовательно, внутри большой скобкой (но что-то лучше, чем функции Python с pipe
, хотя)?
Я думаю, что примеры ваших данных будет идти долгий путь. Если вы просто хотите, чтобы индекс использовался как tupels, вы можете сделать 'pd.Index (my_multiindex)' –
Вышеприведенный пример в основном является полным. Но вместо запуска отдельного назначения 'df1.columns = ...', я хотел бы добавить вызов метода внутри 'd1 = (...)', чтобы иметь чистый конвейер. Результат - это то, что я хочу. – Gerenuk
@ Gerenuk, AFAIK в настоящее время это невозможно. Было бы возможно, если 'DataFrame.rename (columns = lambda x: print (x))' будет работать с кортежами для многоуровневых столбцов, но, к сожалению, это не так. – MaxU