精华内容
下载资源
问答
  • 下面小编就为大家分享一篇python实现在pandas.DataFrame添加一行,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 向pandas DataFrame添加一行

    千次阅读 2020-04-12 15:47:38
    I understand that pandas is designed to load fully populated DataFrame but I need to create an empt

    本文翻译自:Add one row to pandas DataFrame

    I understand that pandas is designed to load fully populated DataFrame but I need to create an empty DataFrame then add rows, one by one . 我知道pandas旨在加载完全填充的DataFrame但是我需要创建一个空的DataFrame,然后逐行添加行 What is the best way to do this ? 做这个的最好方式是什么 ?

    I successfully created an empty DataFrame with : 我成功创建了一个空的DataFrame:

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

    Then I can add a new row and fill a field with : 然后,我可以添加新行,并使用以下字段填充字段:

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

    It works but seems very odd :-/ (it fails for adding string value) 它有效,但看起来很奇怪:-/(添加字符串值失败)

    How can I add a new row to my DataFrame (with different columns type) ? 如何将新行添加到DataFrame(具有不同的列类型)?


    #1楼

    参考:https://stackoom.com/question/ixi9/向pandas-DataFrame添加一行


    #2楼

    You could use pandas.concat() or DataFrame.append() . 您可以使用pandas.concat()DataFrame.append() For details and examples, see Merge, join, and concatenate . 有关详细信息和示例,请参见合并,联接和连接


    #3楼

    In case you can get all data for the data frame upfront, there is a much faster approach than appending to a data frame: 如果可以预先获取该数据帧的所有数据,则有一种比附加到数据帧快得多的方法:

    1. Create a list of dictionaries in which each dictionary corresponds to an input data row. 创建一个词典列表,其中每个词典对应于一个输入数据行。
    2. Create a data frame from this list. 从此列表创建一个数据框。

    I had a similar task for which appending to a data frame row by row took 30 min, and creating a data frame from a list of dictionaries completed within seconds. 我有一个类似的任务,需要花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)               
    

    #4楼

    For efficient appending see How to add an extra row to a pandas dataframe and Setting With Enlargement . 为了高效地附加,请参见如何向pandas数据框添加额外的行和“ 设置为放大”

    Add rows through loc/ix on non existing key index data. 通过loc/ix不存在的键索引数据上添加行。 eg : 例如:

    In [1]: se = pd.Series([1,2,3])
    
    In [2]: se
    Out[2]: 
    0    1
    1    2
    2    3
    dtype: int64
    
    In [3]: se[5] = 5.
    
    In [4]: se
    Out[4]: 
    0    1.0
    1    2.0
    2    3.0
    5    5.0
    dtype: float64
    

    Or: 要么:

    In [1]: dfi = pd.DataFrame(np.arange(6).reshape(3,2),
       .....:                 columns=['A','B'])
       .....: 
    
    In [2]: dfi
    Out[2]: 
       A  B
    0  0  1
    1  2  3
    2  4  5
    
    In [3]: dfi.loc[:,'C'] = dfi.loc[:,'A']
    
    In [4]: dfi
    Out[4]: 
       A  B  C
    0  0  1  0
    1  2  3  2
    2  4  5  4
    In [5]: dfi.loc[3] = 5
    
    In [6]: dfi
    Out[6]: 
       A  B  C
    0  0  1  0
    1  2  3  2
    2  4  5  4
    3  5  5  5
    

    #5楼

    >>> 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
    

    #6楼

    If you know the number of entries ex ante, you should preallocate the space by also providing the index (taking the data example from a different answer): 如果您事前知道条目数,则应该通过提供索引来预分配空间(从另一个答案中获取数据示例):

    import pandas as pd
    import numpy as np
    # we know we're gonna have 5 rows of data
    numberOfRows = 5
    # create dataframe
    df = pd.DataFrame(index=np.arange(0, numberOfRows), columns=('lib', 'qty1', 'qty2') )
    
    # now fill it up row by row
    for x in np.arange(0, numberOfRows):
        #loc or iloc both work here since the index is natural numbers
        df.loc[x] = [np.random.randint(-1,1) for n in range(3)]
    In[23]: df
    Out[23]: 
       lib  qty1  qty2
    0   -1    -1    -1
    1    0     0     0
    2   -1     0    -1
    3    0    -1     0
    4   -1     0     0
    

    Speed comparison 速度比较

    In[30]: %timeit tryThis() # function wrapper for this answer
    In[31]: %timeit tryOther() # function wrapper without index (see, for example, @fred)
    1000 loops, best of 3: 1.23 ms per loop
    100 loops, best of 3: 2.31 ms per loop
    

    And - as from the comments - with a size of 6000, the speed difference becomes even larger: 而且-从注释中看-大小为6000,速度差异变得更大:

    Increasing the size of the array (12) and the number of rows (500) makes the speed difference more striking: 313ms vs 2.29s 增加数组(12)的大小和行数(500)会使速度差异更加明显:313ms vs 2.29s

    展开全文
  • python在pandas.DataFrame添加一行

    万次阅读 2017-06-02 17:34:31
    代码示例: from pandas import * from random import * df = DataFrame(columns=('lib', 'qty1', 'qty2'))#生成空的pandas...for i in range(5):#插入一行 df.loc[i] = [randint(-1,1) for n in range(3)] print df

     代码示例:

    from pandas import *
    from random import *
    df = DataFrame(columns=('lib', 'qty1', 'qty2'))#生成空的pandas表
    for i in range(5):#插入一行
        df.loc[i] = [randint(-1,1) for n in range(3)]
    print df


    展开全文
  • 添加一行为列求和

    在这里插入图片描述

    添加一行为列求和
    在这里插入图片描述

    展开全文
  • DataFrame添加行

    2020-06-19 14:09:40
    DataFrame添加行 方法一: 使用loc方法 from pandas import * from random import * df = DataFrame(columns=('lib', 'qty1', 'qty2')) # 生成空的pandas表 for i in range(6): # 插入一行 # i为行索引,即添加到i ...

    DataFrame添加行

    方法一:
    使用loc方法

    from pandas import *
    from random import *
    df = DataFrame(columns=('lib', 'qty1', 'qty2'))  # 生成空的pandas表
    for i in range(6):  # 插入一行
    	# i为行索引,即添加到i index的位置
        df.loc[i] = [randint(-1, 1) for n in range(3)]
    	
    df.loc['行名'] = [2,1,3]
    print(df)
    
    

    方法二:
    使用append方法

    import pandas as pd
    df = pd.DataFrame([[1, 2], [3, 4]], columns=list('AB'))
    
    df2 = pd.DataFrame([[5, 6], [7, 8]], columns=list('AB'))
    # 使用append在行上添加同类型(Dataframe)数据
    df = df.append(df2, ignore_index=True)
    
    # 也可指定列名
    new_row=pd.DataFrame({'A': i,
                      'B': '0'},
                      index=[1]) 
    df = df.append(new_row, ignore_index=True) 
    
    
    展开全文
  • 一行一行的给DataFrame添加数据 1.低性能 # 一个空的df df = pd.DataFrame(columns=['A']) for i in range(5): # 注意这里每次都在复制 df = df.append({'A': i}, ignore_index=True) df 2.高性能 # 第一个入参是...
  • 今天小编就为大家分享篇python 创建个空dataframe 然后添加行数据的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 刚学习pandas,想给个原有的excel表格上实现添加新数据,但是由于刚学,不熟悉dataframe的特性,本来想按照写入json转csv的方式对数据进行添加,那就意味着要对原先表格的数据进行提取再series合并,最后再写入...
  • dataframe添加行索引的方法

    千次阅读 2020-07-26 18:46:14
    dataframe 添加行的方法: 1)通过loc函数添加,必须要知道行index,相同的...df1.loc[df1.shape[0]+1]=[5,5] #在最后一行添加 2)通过合并两个dataframe表格添加行(相同行index的不会覆盖) df1=pd.DataFrame([[1.
  • ## add one row in a pandas.DataFrame -DataFrame添加行 https://stackoverflow.com/questions/10715965/add-one-row-in-a-pandas-dataframe 不得不说,这个问题在stackoverflow有10个回答,303 votes,339k ...
  • #指定位置增加一行: df.loc[0]={'a':1,'b':2} 正确方法: 新建一个同样的 dataframe, 然后合并两个dataframe。 #新建一个df df2 = pd.DataFrame(['999999','空',5]).T # 修改df2的column和df的一致 df2....
  • 在 pandas.DataFrame添加一行

    万次阅读 2017-11-01 12:47:08
    在 pandas.DataFrame添加一行  示例: 复制代码 >df = DataFrame(columns=('lib', 'qty1', 'qty2')) for i in range(5): df.loc[i] = [randint(-1,1) for n in range(3)] >print(df) lib qty1 qty2 0...
  • 目的:在构造的dataframe添加一行数据 给已经建好的DataFrame添加一行 # 构建一个dataframe df = pd.DataFrame(columns=['name','number'], data=[['cat',3], ['dog',2],['pig',1]]) df name number 0 cat 3 1...
  • Pandas DataFrame添加一行

    万次阅读 多人点赞 2018-10-09 20:31:24
    添加一行 >>> res = pd.DataFrame(columns=('lib', 'qty1', 'qty2')) >>> res = res.append([{'qty1':10.0}], ignore_index=True) >>> print(res....
  • 如何给一个Python Pandas的DataFrame对象添加一行数据? 1.如何创建一个新的dataframe变量。 1)创建一个没有列名的dataframe变量:df = pd.DataFrame()。 2)创建一个列名为‘A’和‘B’的dataframe变量:df =...
  • 补上昨天没时间发的一篇文章 最近在学习张良均老师的python数据分析与实战 昨天在练习用拉格朗日插值法的时候...这里可以定义两个空dataframe分别存储缺失值所在的行插值前后的情况,其中将data的某一行添加到空da...
  • 文章目录创建空的DataframeDataFrame中插入数据插入一行 创建空的Dataframe import pandas as pd df=pd.DataFrame(columns=['date','rainfall']) df 向DataFrame中插入数据 插入一行 以字典的形式{列名:列值,...
  • pandas是python环境下最有名的数据统计包,而DataFrame翻译为数据框,是种数据组织方式,这篇文章主要给大家介绍了python中pandas.DataFrame与列求和及添加与列的方法,文中给出了详细的示例代码,需要的...
  • data = pd.DataFrame() series = pd.Series({"x":1,"y":2},name="a") data = data.append(series) print(data) data = data.append(series) print(data) x y a 1.0 2.0 x y a 1.0 2.0 a 1.0 2.0

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 215
精华内容 86
关键字:

dataframe添加一行