附加到熊猫中的空DataFrame吗?


212

是否可以将其追加到不包含任何索引或列的空数据框中?

我试图这样做,但最后总是得到一个空的数据框。

例如

df = pd.DataFrame()
data = ['some kind of data here' --> I have checked the type already, and it is a dataframe]
df.append(data)

结果看起来像这样:

Empty DataFrame
Columns: []
Index: []

在这里回答了类似的问题:stackoverflow.com/questions/13784192/…。基本上是这样的newDF = pd.DataFrame() #creates a new dataframe that's empty newDF = newDF.append(oldDF, ignore_index = True) # ignoring index is optional
geekidharsh

追加什么?一个值?Python列表?大熊猫系列?另一个数据框?您的示例结尾注释表明您的意思是另一个数据框-因此,请在示例代码中提供一个数据

当您说“结果看起来像这样”时,我希望您不要尝试直接这样做print(df.append(data)),因为append()在Python中始终返回None
smci

Answers:


388

那应该工作:

>>> df = pd.DataFrame()
>>> data = pd.DataFrame({"A": range(3)})
>>> df.append(data)
   A
0  0
1  1
2  2

但是,append没有就地发生,所以你必须要存储输出,如果你想它:

>>> df
Empty DataFrame
Columns: []
Index: []
>>> df = df.append(data)
>>> df
   A
0  0
1  1
2  2

8
谢谢!可行!我没有意识到我必须存储输出...我可能应该更好地阅读文档,但是我非常感谢@DSM!
ericmjl

9
我总是忘记您需要分配它!
安迪B

66
实际上,未在适当位置执行追加操作是这里最重要的信息;)
refuzee 2015年

6
不知道为什么熊猫的例子没有显示出来。谢谢你的帮助!
Drew Szurko '17

2
请注意,至少在2018年6月,如果您希望新行自己进行自动索引,则应编写df.append(data,ignore_index = True)。感谢您的好评!
亚当B

98

如果要添加一行,可以使用字典:

df = pd.DataFrame()
df = df.append({'name': 'Zed', 'age': 9, 'height': 2}, ignore_index=True)

这给你:

   age  height name
0    9       2  Zed

低服务表现,大数据处理时特别
raullalves

2
您能否将其与其他提议的替代方案@raullalves结合使用?
Bouncner,

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.