我有一个数据框:
s1 = pd.Series([5, 6, 7])
s2 = pd.Series([7, 8, 9])
df = pd.DataFrame([list(s1), list(s2)], columns = ["A", "B", "C"])
A B C
0 5 6 7
1 7 8 9
[2 rows x 3 columns]
我需要加上第一行[2,3,4]得到:
A B C
0 2 3 4
1 5 6 7
2 7 8 9
我试过append()
和concat()
函数,但找不到正确的方法。
如何向数据框中添加/插入序列?
实现这一目标的一个方法是
通常,最容易附加数据帧,而不是序列。在您的例子中,因为您希望新行“在最上面”(以起始id为单位),并且没有函数
pd.prepend()
,所以我首先创建新的数据帧,然后附加旧的数据帧。ignore_index
将忽略数据帧中正在进行的旧索引,并确保第一行实际上以索引1
开始,而不是以索引0
重新启动。典型免责声明:Cetero censeo。。。附加行是一个非常低效的操作。如果您关心性能,并且能够以某种方式确保首先创建一个具有正确(较长)索引的数据帧,然后将附加行插入到数据帧中,那么您肯定应该这样做。见:
到目前为止,我们已经得到了您所拥有的
df
:但是现在可以很容易地插入行,如下所示。由于空间是预先分配的,因此效率更高。
只需使用
loc
将行分配给特定索引:你会得到你想要的:
请参阅Pandas文档中的Indexing: Setting with enlargement。
不确定您是如何调用
concat()
的,但只要两个对象属于同一类型,它就应该可以工作。也许问题是你需要把你的第二个向量转换成一个数据帧?使用您为我定义的df,可以执行以下操作:相关问题 更多 >
编程相关推荐