将一维 Numpy 数组作为一行添加到 DataFrame

新手上路,请多包涵

是否有一个函数可以让您有效地将 NumPy 数组直接附加到 DataFrame?

变量:

 df = pd.DataFrame(columns=['col1', 'col2', 'col3'])

Out[1]: +------+------+------+
        | Col1 | Col2 | Col3 |
        +------+------+------+
        |      |      |      |
        +------+------+------+

arr = np.empty(3)

# array is populated with values. Random numbers are chosen in this example,
#    but in my program, the numbers are not arbitrary.
arr[0] = 756
arr[1] = 123
arr[2] = 452

Out[2]: array([756, 123, 452])

我如何直接将 --- 附加到 arr df 末尾以获得这个?

 +------+------+------+
| Col1 | Col2 | Col3 |
+------+------+------+
|  756 |  123 |  452 |
+------+------+------+

我试过使用 df.append(arr) 但它不接受 NumPy 数组。我可以将 NumPy 数组转换为 DataFrame 然后附加它,但我认为这会非常低效,尤其是在数百万次迭代之后。有没有更有效的方法呢?

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

阅读 1.2k
2 个回答

@BalrogOfMoira 真的比简单地创建要附加的数据框更快吗?

 df.append(pd.DataFrame(arr.reshape(1,-1), columns=list(df)), ignore_index=True)

否则@Wonton 您可以简单地连接数组然后写入数据框,该数据框可以附加到原始数据框。

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

这将起作用:

 df.append(pd.DataFrame(arr).T)

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

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