【问题标题】:Pandas values substituted by numpy matrix?由 numpy 矩阵替换的 Pandas 值?
【发布时间】:2017-10-16 12:16:34
【问题描述】:

我的问题很简单。我有一个数据框,我想用一个 numpy 矩阵添加或减去我的数据框。 两个矩阵的大小是相同的。 我想要这样的东西:my_matrix.values = my_matrix.values + numpy_matrix,或my_matrix.values = my_matrix.values - numpy_matrix,效率很高。

不可能吗?因为 ma 矩阵的大小非常大,并且“更新”、减法或“加法”命令很长。每次都重新创建一个 DataFrame 会更好吗?

【问题讨论】:

  • 已编辑。抱歉,不清楚。
  • 一个示例数据会更好理解
  • 很简单:如果A = (1)ijB = (2) ijC = A + B = (3)ij。我只想将两个矩阵与 numpy 相加并将值放入数据框中。计算非常简单,但矩阵大于 20 000。是否可以在没有“更新”的情况下做到这一点?或“添加”?还是重新创建一个数据框?

标签: python pandas numpy add subtraction


【解决方案1】:

IIUC,类似这样的:

df = pd.DataFrame([[1,2],[3,4]],columns=['A','B'])
my_arr = np.array([[2,2],[2,2]])

df += my_arr

print(df)

输出:

   A  B
0  3  4
1  5  6

【讨论】:

  • 这么简单!!!我尝试了几个 SOOOO 复杂的事情。非常感谢。你为我节省了 4 个小时的微积分。
  • 简单而公平。
  • 也许还有一件事。要使用你的方法,我需要我的第一个 df 在没有 NaN 的情况下很多,否则一些 sum 不会发生。如果我有一个 NaN,我应该使用 fillna(0) 并浪费很多时间。是否存在有效地求和NaN + num = num 的解决方案?在这种更糟糕的情况下,我需要df = df.fillna(0) + df_arr.
  • @Cyril df = df.add(my_arr, fill_value=0) 这不是以前的声明,但是您的声明也应该有效。
  • %time它比你更喜欢我的方法。感谢您的解决方案。有时,优化很简单。
猜你喜欢
  • 2017-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-31
  • 2019-10-19
  • 2015-04-30
  • 2017-02-10
  • 1970-01-01
相关资源
最近更新 更多