Панды интерполируют внутри группы для одного столбца

Подобно этому вопросу Панды интерполируют внутри группы, но ответ на этот вопрос выполняет интерполяцию () для всех столбцов. Если я хочу ограничить интерполяцию() только одним столбцом, как мне это сделать?

Вход

    filename    val1    val2
t                   
1   file1.csv   5       10
2   file1.csv   NaN     NaN
3   file1.csv   15      20
6   file2.csv   NaN     NaN
7   file2.csv   10      20
8   file2.csv   12      15

Ожидаемый результат

    filename    val1    val2
t                   
1   file1.csv   5       10
2   file1.csv   NaN     15
3   file1.csv   15      20
6   file2.csv   NaN     NaN
7   file2.csv   10      20
8   file2.csv   12      15

Эта попытка возвращает только столбец val2, но не остальные столбцы.

df = df.groupby('filename').apply(lambda group: group['val2'].interpolate(method='index'))

Если он возвращает только столбец val2... как и ожидалось... тогда только поместите результаты в столбец val2... df['val2'] = df.groupby(...

BeRT2me 23.11.2022 18:16
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
1
123
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Прямой подход:

df = pd.read_clipboard() # clipboard contains OP sample data
# interpolate only on col "val2"
df["val2_interpolated"] = df[["filename","val2"]].groupby('filename')
.apply(lambda x:x) # WTF
.interpolate(method='linear')["val2"]

возвращает:

    filename  val1  val2  val2_interpolated
t
1  file1.csv   5.0  10.0               10.0
2  file1.csv   NaN   NaN               15.0
3  file1.csv  15.0  20.0               20.0
6  file2.csv   NaN   NaN               20.0
7  file2.csv  10.0  20.0               20.0
8  file2.csv  12.0  15.0               15.0
groupby есть ключевое слово ignore_index, это было бы лучше, чем использовать reset_index постфактум~
BeRT2me 23.11.2022 18:17

идеальный! именно то, что я искал, и да, даже будучи новичком в пандах, эта лямбда x: x была моментом WTF!

dch2404 23.11.2022 18:44

Другие вопросы по теме

Создайте новые столбцы, используя уникальные значения в других столбцах в Python
Pandas Отделите категориальные и числовые функции от нескольких фреймов данных и сохраните их в новом фрейме данных
Вычисление общего количества значений на основе одного и того же идентификатора в фрейме данных pandas
Загрузка большого файла (800 МБ) с URL-адреса в корзину GCS с использованием облачной функции
Как показать текст из третьего столбца фрейма данных при наведении курсора на линейную диаграмму, состоящую из двух других столбцов?
Как сводная/сводная таблица кадра данных pandas с несколькими значениями столбца
Панды создают категориальный столбец на основе ранга в группе
Как преобразовать столбец dataframe, который содержит список словаря, в отдельные столбцы?
Используйте pandas groupby для группировки нескольких столбцов
Как применить нечеткое сопоставление к столбцу фрейма данных с несколькими списками и сохранить результаты в новом столбце

Похожие вопросы