【问题标题】:Appending dictionaries in list to pandas dataframe将列表中的字典附加到熊猫数据框
【发布时间】:2020-09-23 06:14:40
【问题描述】:

我有一个具有相同键的字典数组,并且我已经有了一个带有 df 标头的 pandas 模板。我需要遍历数组并将每个字典附加到 df。

arr_dics = [{'event':'alpha', 'site':'beta', 'date':'gamma'}, {'event':'a', 'site':'b', 'date':'c'}] 

for i in range(len(arr_dics)):
    new_dic = arr_dics[i]
    two_games_df.append(new_dic, ignore_index=True)

但是,我得到的输出仅将第二个字典附加到数据帧。 我需要在某处指定索引吗?

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    使用pd.concat

    arr_dic = [{'event':'alpha', 'site':'beta', 'date':'gamma'}, {'event':'a', 'site':'b', 'date':'c'}] 
    df = pd.DataFrame(columns=['event','site','date'])
    
    df = pd.concat([df, pd.DataFrame(arr_dic)])
    df
       event  site   date
    0  alpha  beta  gamma
    1      a     b      c
    

    【讨论】:

      【解决方案2】:

      为了您的困惑,请注意append 不是inplace。所以需要将append函数的输出赋值给原来的df

      two_games_df=  two_games_df.append(new_dic, ignore_index=True)
      

      【讨论】:

      • 如何就地使用?
      • 不幸的是,这是不可能的。这是唯一的出路!有帮助吗?
      • 没关系!有效!我只是想知道将来的使用。谢谢
      • 好的...考虑支持并接受答案。它激励着我们!!!
      【解决方案3】:

      使用

      two_games_df=two_games_df.append(new_dic, ignore_index=True) 
      

      df.append 将其他行追加到调用者的末尾,返回一个新对象,您需要保存新对象。

      df.append 不修改原始对象。

      【讨论】:

        猜你喜欢
        • 2022-01-06
        • 2015-10-20
        • 2017-10-12
        • 2020-07-22
        • 2014-01-03
        • 1970-01-01
        • 2020-05-21
        • 1970-01-01
        相关资源
        最近更新 更多