Можно ли добавить в фрейм данных с помощью итерации?

#python #pandas

Вопрос:

Объект API — ответа, из которого я пытаюсь построить фрейм данных, можно найти здесь: https://github.com/ahoy0/Stack-Overflow-Question/blob/main/SO Object

Отредактируйте Это одна из самых сложных структур данных, с которыми я до сих пор работал, поэтому я также ценю любое руководство о том, как концептуально подойти к этому.

Ранее я пытался добавить каждую точку данных (строки) непосредственно в кадр данных с помощью цикла for, но с каждой итерацией перезаписывал предыдущую запись. После этого катастрофического сбоя я решил сделать это, создав серию для каждого столбца и добавив ее. Вместо того, чтобы создавать серию и добавлять ее, как я мог бы повторить ответ API, не перезаписывая предыдущий индекс фрейма данных?

Вот моя попытка, которая не сработала:

 ochain = #(object from above link)
df = pd.DataFrame(columns=["Strike Price"])
for index in ochain['OptionChainResponse']['OptionPair']:
     df["Strike Price"] = index['Call']['strikePrice']
 

Вот мой временный обходной путь:

 df = pd.DataFrame(columns=["Strike Price"])

strikes = pd.Series(ochain['OptionChainResponse']['OptionPair'][0]['Call']['strikePrice'],
                    ochain['OptionChainResponse']['OptionPair'][1]['Call']['strikePrice'],
                    ochain['OptionChainResponse']['OptionPair'][2]['Call']['strikePrice'],
                    ochain['OptionChainResponse']['OptionPair'][3]['Call']['strikePrice'],
                    ochain['OptionChainResponse']['OptionPair'][4]['Call']['strikePrice'],
                    ochain['OptionChainResponse']['OptionPair'][5]['Call']['strikePrice'],
                    ochain['OptionChainResponse']['OptionPair'][6]['Call']['strikePrice'],
                    ochain['OptionChainResponse']['OptionPair'][7]['Call']['strikePrice'],
                    ochain['OptionChainResponse']['OptionPair'][8]['Call']['strikePrice'],
                    ochain['OptionChainResponse']['OptionPair'][9]['Call']['strikePrice'],
                    ochain['OptionChainResponse']['OptionPair'][10]['Call']['strikePrice'],
                    ochain['OptionChainResponse']['OptionPair'][11]['Call']['strikePrice'],
                    ochain['OptionChainResponse']['OptionPair'][12]['Call']['strikePrice'],
                    ochain['OptionChainResponse']['OptionPair'][13]['Call']['strikePrice'],
                    ochain['OptionChainResponse']['OptionPair'][14]['Call']['strikePrice'],
                    ochain['OptionChainResponse']['OptionPair'][15]['Call']['strikePrice'],
                    ochain['OptionChainResponse']['OptionPair'][16]['Call']['strikePrice'],
                    ochain['OptionChainResponse']['OptionPair'][17]['Call']['strikePrice'],
                    ochain['OptionChainResponse']['OptionPair'][18]['Call']['strikePrice'],
                    ochain['OptionChainResponse']['OptionPair'][19]['Call']['strikePrice'])

df["Strike Price"].append(strikes)
 

Комментарии:

1. Непонятно, о чем вы спрашиваете. Приведите минимальный воспроизводимый пример, укажите свое мнение и то, в чем именно заключалась ваша проблема, и ожидаемый результат. И самое главное, не зацикливайтесь на кадрах данных, если только вам действительно не нужно.

2. Привет, Забоп, пожалуйста, ознакомьтесь с изменениями, которые я внес. Делает ли это все более ясным? Спасибо, что нашли время ответить, я действительно ценю это.

3. Да, это возможно, но вы определенно не хотите поступать таким образом. Вместо этого добавьте в список, а затем добавьте этот список в качестве столбца в свой фрейм данных

4.Ваша проблема, df[column] = scalar_value не добавляется. Что должно быть очевидно, так как вы используете container[key] = item синтаксис, который обычно не добавляется, он записывает в определенный ключ. В этом случае для a pd.DataFrame он записывает скалярное значение в столбец*. Вы могли бы использовать df.append , но опять же, вы не должны

5. Нет, просто используйте список.