pandas 增加一行数据

您所在的位置:网站首页 python新增一行并赋值 pandas 增加一行数据

pandas 增加一行数据

2023-10-03 12:54| 来源: 网络整理| 查看: 265

常用的方法

1、loc, iloc df = DataFrame(columns=('lib', 'qty1', 'qty2')) for i in range(5): df.loc[i] = [randint(-1,1) for n in range(3)] # loc可以对没有的 index 进行赋值,而 iloc 则不允许,iloc只能对已经存在的位置进行操作。 print(df) # 对于完整的自增索引,可以使用len(df),在最后添加一行 for i in range(5): df.loc[len(df)] = [randint(-1,1) for n in range(3)]

这是一种方法,但是如果我们是往已有的DataFrame中添加数据,而已有的DataFrame已经存在相同的index就会造成替换。

当然如果我们对我们的数据足够了解,或者index并不重要,我们可以对index按0-based重新赋值。然后添加新行,也就不会出现问题。

2、append

采用append函数,进行叠加,可以避免上面提到的相同index造成的替换问题。

import pandas as pd from numpy.random import randint df = pd.DataFrame(columns=('lib', 'qty1', 'qty2')) for i in range(5): s = pd.Series({'lib':randint(-1,1), 'qty1':randint(-1,1), 'qty2':randint(-1,1)}) # 这里 Series 必须是 dict-like 类型 df = df.append(s, ignore_index=True) # 这里必须选择ignore_index=True 或者给 Series 一个index值 #也可以直接填写字典格式进去 df = df.append({'lib':randint(-1,1), 'qty1':randint(-1,1), 'qty2':randint(-1,1)}, ignore_index=True) 时间测评 import time import pandas as pd from numpy.random import randint # 采用 loc t = time.time() df = pd.DataFrame(columns=('lib', 'qty1', 'qty2')) for i in xrange(10000): df.loc[i] = [randint(-1,1) for n in range(3)] print('loc:', time.time() - t) # 采用 append t = time.time() df = pd.DataFrame(columns=('lib', 'qty1', 'qty2')) for i in xrange(10000): s = pd.Series({'lib':randint(-1,1), 'qty1':randint(-1,1), 'qty2':randint(-1,1)}) df = df.append(s, ignore_index=True) print('apped:', time.time() - t) # ('loc:', 18.150289058685303) # ('apped:', 15.132553100585938)

可以看出,采用 append 的方法速度上比较快,而且可以避免index的错误。

 

3、 concat

再定义一个dataframe,然后合并两个df

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3