【问题标题】:Appending to an empty DataFrame in Pandas?在 Pandas 中附加到一个空的 DataFrame?
【发布时间】:2013-05-11 22:14:19
【问题描述】:

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

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

例如

import pandas as pd

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
  • 追加什么?单一价值? Python 列表?熊猫系列?另一个数据框? 您的示例尾随注释表明您的意思是另一个数据框 - 所以在您的示例代码中给出一个数据框,已经:)
  • 当你说“结果看起来像这样”时,我希望你不要直接尝试做print(df.append(data)),因为append() always returns None in Python

标签: python pandas


【解决方案1】:

应该可以的:

>>> 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

【讨论】:

  • 谢谢!那行得通!我没有意识到我必须存储输出......我可能应该更好地阅读文档,但我很感激,@DSM!
  • 我总是忘记你需要分配它!
  • 实际上附加没有发生在适当的位置是这里最重要的信息;)
  • 不知道为什么Pandas 的例子没有显示出来。感谢您的帮助!
  • 请注意,至少在 2018 年 6 月,如果您希望新行自动建立索引,您应该编写 df.append(data, ignore_index=True)。感谢您的精彩回答!
【解决方案2】:

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

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

给你:

   age  height name
0    9       2  Zed

【讨论】:

  • 性能低下,特别是在处理大数据时
  • 你能把它与其他提议的替代方案联系起来吗,@raullalves?
【解决方案3】:

你可以这样连接数据:

InfoDF = pd.DataFrame()
tempDF = pd.DataFrame(rows,columns=['id','min_date'])

InfoDF = pd.concat([InfoDF,tempDF])

【讨论】:

  • 谢谢,我试过concat。但是,如果它们可以做同样的工作,为什么还要 append 和 concat 呢
  • 这个帖子可能会给出一个很好的解释:stackoverflow.com/questions/15819050/…
  • 什么是行/列? @Deepish
【解决方案4】:

我试过这种方法,效果很好

import pandas as pd

df = pd.DataFrame(columns =['columnA','columnB'])
data = {'columnA':'data', 'columnB':'data'}
df = df.append(data)

【讨论】:

    猜你喜欢
    • 2015-05-12
    • 2019-05-21
    • 1970-01-01
    • 1970-01-01
    • 2015-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-17
    相关资源
    最近更新 更多