我知道pandas的设计目的是加载完全填充的DataFrame
,但我需要创建一个空的DataFrame,然后逐个添加行。做这件事最好的方法是什么?
我成功创建了一个空DataFrame,其中包含:
res = DataFrame(columns=('lib', 'qty1', 'qty2'))
然后我可以添加一个新行,并用以下内容填充字段:
res = res.set_value(len(res), 'qty1', 10.0)
它可以工作,但看起来很奇怪:-/(它不能添加字符串值)
我如何添加一个新的行到我的数据帧(不同的列类型)?
您可以使用pandas.concat()
或dataframe.append()
。有关详细信息和示例,请参见合并、联接和串联。
如果您可以提前获取数据帧的所有数据,则有一种比附加到数据帧更快得多的方法:
我有一个类似的任务,逐行添加到数据帧需要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)
您可以使用df.loc[i]
,其中具有i
索引的行将是您在数据帧中指定的行。
>>> 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
问题内容: 我想将Pandas数据框附加到名为“ NewTable”的sqlite数据库中的现有表上。NewTable具有三个字段(ID,名称,年龄),ID是主键。我的数据库连接: 我要附加的数据框: 如上所述,ID是NewTable中的主键。键“ L1”已在NewTable中,但键“ L11”不在中。我尝试将数据框追加到NewTable。 这将引发错误: 该错误很可能是因为键“ L1”已经在
我在anylogic中根据我创建的数据库表生成代理。在这个数据库中,我有我的代理的一些特征。这个代理应该是我的“调度代理”,因为我的重点是重新调度,所以我的生产订单必须保存为队列中的代理。我的问题是,在生成代理时,首先我不能告诉系统一次生成所有代理(比如“导入”数据库的行,并将每一行转换为具有特征的代理)。我试着在每个生产订单之间增加1s的差异,但是,当到达最后一个日期时,我的模拟给出了一个错误并
我使用一个自定义搜索函数的ajax查询,返回超文本标记语言数据成功调用。我想把这个数据附加到已经在页面上初始化的jQuery数据表中。当页面加载jQuery可数据显示,但是当我启动搜索功能,数据被附加到可数据,但不是排序,可搜索形式的可数据用户界面。ajax调用工作和数据返回时,我把成功的调用到console.log. 以下是HTML: 下面是带有Ajax调用的JQuery: }); 这是从aja
我希望的工作方式与相同,以符合Python索引约定。不支持按单个整数索引行是否有设计原因?
我发现了这个先前的职位,它让我接近。如何将数据帧的列和行的子集转换成数字数组 但是,我需要迭代数据帧,并为“a”中每个正确匹配的值创建一个从列“b”到列“j”的3x3数组(或矩阵),而不是根据第三列中的值创建两列的单个数组(或数组)。 我想要的是两个独立的数组,每个一个 我尝试了以下操作,但收到了一个非常难看的错误。该代码是基于原始帖子的尝试。 这是错误- () ----中的IndexingErr
问题内容: 下面是我的数据框 我想在第一个位置插入新行 姓名:院长,年龄:45,性别:男 在熊猫中做到这一点的最佳方法是什么? 问题答案: 如果要经常进行操作,那么就性能而言,首先将数据收集到列表中然后使用(类似于@Serenity的解决方案)是有意义的: 演示: PS我不会把,,过于频繁(每单排),因为它是相当昂贵。因此,想法是分批进行…