通过一次追加一行来创建 Pandas 数据框

新手上路,请多包涵

如何创建一个空的 DataFrame ,然后一一添加行?

我创建了一个空的 DataFrame

 df = pd.DataFrame(columns=('lib', 'qty1', 'qty2'))

然后我可以在最后添加一个新行并用以下内容填充单个字段:

 df = df._set_value(index=len(df), col='qty1', value=10.0)

它一次只适用于一个领域。将新行添加到 df 的更好方法是什么?

原文由 PhE 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

您可以使用 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

原文由 fred 发布,翻译遵循 CC BY-SA 4.0 许可协议

如果您可以预先获取数据框的所有数据,则有一种比附加到数据框更快的方法:

  1. 创建一个字典列表,其中每个字典对应一个输入数据行。
  2. 从此列表创建数据框。

我有一个类似的任务,逐行附加到数据框需要 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)

原文由 ShikharDua 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题