【发布时间】:2020-02-06 03:03:23
【问题描述】:
是否有一个函数可以让您有效地将 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 然后附加它,但我认为这将非常低效,尤其是在数百万次迭代中。有没有更有效的方法?
【问题讨论】:
-
使用
df.loc[len(df)] = arr -
@rafaelc 很快就会慢下来。一旦你的行数达到 10 万行,每行开始需要 10 毫秒,而且还有 90 万多行
-
@ALollz 但没有人说有一个 for 循环,我们在每次迭代时都附加
-
您能否提供更多有关您如何生成这些数字的信息?可能最好的解决方案是预先分配所有内容,相应地填充它,然后在最后构造 DataFrame。
标签: python arrays pandas numpy dataframe