Pandas сжимает строки, когда данные отсутствуют

У меня есть список диктов, где каждый дикт может иметь разные ключи. Я хочу создать фрейм данных с одной строкой, где каждый ключ является столбцом, а строка — его значением:

import pandas as pd
data = [{"A":1}, {"B":2}, {"C":3}]
df = pd.DataFrame(data)
print(df.to_string(index=False))
#   A   B   C
# 1.0 NaN NaN
# NaN 2.0 NaN
# NaN NaN 3.0

Что я хочу:

#   A   B   C
# 1.0 2.0 3.0

Как я могу удалить/сжать строки со значениями NaN?

🤔 А знаете ли вы, что...
В Python есть среды разработки, такие как Jupyter Notebook, которые упрощают работу с данными и исследованиями.


3
51
2

Ответы:

Решено

Один из вариантов — сложить :

df.stack().droplevel(0).to_frame().T

Или используя пустышку groupby:

import numpy as np

df.groupby(np.repeat(0, len(df))).first()

Выход:

     A    B    C
0  1.0  2.0  3.0

Вы можете сгладить словари и создать DataFrame с помощью конструктора:

from collections import ChainMap

df = pd.DataFrame([ChainMap(*data)])
print (df)
   A  B  C
0  1  2  3

Интересные вопросы для изучения

Передача переменных конфигурации в функции, чтобы они вели себя как константы времени компиляцииКогда я запускаю поэтическую оболочку на MacOS с оболочкой ZSH, выдает ошибку «команда не найдена»Развертывание веб-приложения Python (Dash) в Azure, конвейер работает слишком долго, а колесо создания сообщений для панд все еще работает. Как оптимизировать?Как мне заставить селен последовательно находить и использовать элемент при создании викторины Kahoot?Как извлечь подстроки непосредственно перед ближайшим знаком препинания?Развертывание веб-приложения Python (Dash) в Azure, конвейер работает слишком долго, а колесо создания сообщений для панд все еще работает. Как оптимизировать?Добавление ведущих нулей в столбцы данных при загрузке из файлов CSV с помощью pandasКак объединить 2 кадра данных pandas на основе критериевЛогическое индексирование: как выбрать конкретное значение для создания нового столбцаВычтите даты и получите результат в количестве месяцев