首页 > 解决方案 > 将一维 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 然后附加它,但我认为这将非常低效,尤其是在数百万次迭代中。有没有更有效的方法来做到这一点?

标签: pythonarrayspandasnumpydataframe

解决方案


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

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

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


推荐阅读