【发布时间】:2019-06-16 10:43:42
【问题描述】:
我有一些 numpy 数组,其行数 (axis=0) 与 pandas 数据框的行数相同。
我想在数据框中创建一个新列,其中每个条目都是一个较小维度的 numpy 数组。
代码:
some_df = pd.DataFrame(columns=['A'])
for i in range(10):
some_df.loc[i] = [np.random.rand(4, 6, 8)
data = np.stack(some_df['A'].values) #shape (10, 4, 6, 8)
processed = np.max(data, axis=1) # shape (10, 6, 8)
some_df['B'] = processed # This fails
我希望新列 'B' 包含形状为 (6, 8) 的 numpy 数组
如何做到这一点?
【问题讨论】:
-
这不是您第一个关于在 DataFrame 单元格中存储 NumPy 数组的问题——在 stackoverflow.com/questions/56617760 中,我最近建议这是错误的方法。这仍然是错误的方法。
-
@JohnZwinck 即使这是错误的方法,这仍然是我现在想做的。
-
原因是我想要一些不需要我调试索引的快速的东西。我现在根本买不起。
-
我同意上面的评论,不推荐,但也许
some_df['B'] = [x for x in processed]应该可以工作。 -
或
some_df['B'] = processed.tolist()
标签: python arrays pandas numpy