Python-向pandas DataFrame添加一行

发布于 2021-02-02 23:21:43

我了解pandas旨在加载完全填充的内容,DataFrame但是我需要创建一个空的DataFrame然后逐行添加行。做这个的最好方式是什么 ?

我成功创建了一个空的DataFrame:

res = DataFrame(columns=('lib', 'qty1', 'qty2'))

然后,我可以添加新行,并用以下字段填充字段:

res = res.set_value(len(res), 'qty1', 10.0)

它有效,但看起来很奇怪:-/(添加字符串值失败)

如何将新行添加到DataFrame(具有不同的列类型)?

关注者
0
被浏览
200
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。
    >>> import pandas as pd
    >>> from numpy.random import randint
    
    >>> df = pd.DataFrame(columns=['lib', 'qty1', 'qty2'])
    >>> for i in range(5):
    >>>     df.loc[i] = ['name' + str(i)] + list(randint(10, size=2))
    
    >>> df
         lib qty1 qty2
    0  name0    3    3
    1  name1    2    4
    2  name2    2    8
    3  name3    2    1
    4  name4    9    6
    


  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    如果可以预先获取该数据帧的所有数据,则有一种比附加到数据帧快得多的方法:

    1. 创建一个词典列表,其中每个词典对应于一个输入数据行。
    2. 从此列表创建一个数据框。

    我有一个类似的任务,需要花30分钟的时间逐行附加到数据帧,然后在几秒钟内完成的字典列表中创建数据帧。

    rows_list = []
    for row in input_rows:
    
            dict1 = {}
            # get input row in dictionary format
            # key = col_name
            dict1.update(blah..) 
    
            rows_list.append(dict1)
    
    df = pd.DataFrame(rows_list)   
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看