Добавить к pd.DataFrame, динамически распределяя любые новые столбцы - PullRequest
0 голосов
/ 07 марта 2020

Я хочу объединить некоторые ответы API в DataFrame.

Запрос последовательно возвращает количество json пар ключ-значение, скажем, A, B, C. однако иногда он будет возвращать A, B, C, D.

Я хотел бы что-то сопоставимое с OUTER JOIN SQL, которое просто добавит новую строку, в то время как соответствующие предыдущие столбцы заполнятся как NULL или какой-либо другой заполнитель.

Параметры соединения pandas требуют наложения уникального суффикса для стороны, я действительно не хочу этого.

Я смотрю на это неправильно ?

Если не существует простого решения, я мог бы просто выбрать подмножество последовательно доступных столбцов, но я действительно хотел загрузить лот и выполнить обработку как отдельный этап.

1 Ответ

0 голосов
/ 07 марта 2020

Вы можете использовать pandas.concat, поскольку он предоставляет все функции, необходимые для вашей проблемы. Пусть эта игрушечная задача иллюстрирует возможное решение.

# This generates random data with some key and value pair.
def gen_data(_size):
  import string
  keys = list(string.ascii_uppercase)
  return dict((k,[v]) for k,v in zip(np.random.choice(keys, _size),np.random.randint(1000, size=_size)))

counter = 0
df = pd.DataFrame()
while True:
  if counter > 5:
    break;

  # Recieve the data
  new_data = gen_data(5)

  # Converting this to dataframe obj
  new_data = pd.DataFrame(new_data) 

  # Appending this data to my stack
  df = pd.concat((df, new_data), axis=0, sort=True)

  counter += 1

df.reset_index(drop=True, inplace=True)
print(df.to_string())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...