如何向 Pandas 数据框中添加新记录。

3
我想向pandas数据框中添加具有新索引的新记录,例如:
df = pandas.DataFrame(columns = ['COL1', 'COL2'])

现在我有一个新的记录,索引标签为“Test1”,值为[20, 30]。 我想做类似以下的事情(伪代码):

df.append(index='Test1', [20, 30])

因此,我的结果将会是:
       COL1   COL2
Test1   20     30

我曾经达到的最远程度是:
df = df.append({'COL1':20, 'COL2':30}, ignore_index=True)

但是这个解决方案不包含新的索引。
谢谢!

你可以尝试使用 pd.concat([df, df1]) - EdChum
3个回答

5
请注意,根据这里,Series是大小不可变的(即向Series中添加条目将复制原始Series并创建新对象)。这意味着向DataFrame中添加行将不断地复制整个DataFrame,造成不必要的开销。强烈建议在需要所有行时先构建一个包含您的行的列表,然后再创建一个DataFrame。

3
引用自此处的文档:

警告 从0.20.0开始,.ix索引器已被弃用,应使用更严格的.iloc和.loc索引器。

因此,您应该使用loc代替。
>>> import pandas as pd
>>> df = pd.DataFrame(columns = ['COL1', 'COL2'])
>>> df.loc['test1'] = [20, 30]
>>> df 
      COL1 COL2
test1   20   30
>>> df.shape 
(1, 2)

1
你可以使用.ix:
In [1]: df = pd.DataFrame(columns = ['COL1', 'COL2'])
In [2]: df.ix['test1'] = [20, 30]
In [3]: df
Out[3]:
       COL1  COL2
test1    20    30

[1 rows x 2 columns]

谢谢,但我在使用Python 2.7时遇到了KeyError: 'test1'。 - Yuval Atzmon
@user2476373 如果你的Pandas版本大于等于0.13.1,它应该可以工作。你可以执行pip freeze | grep -i pandas来检查你的Pandas版本,并执行pip install -U pandas来升级它。 - Yang

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接