当前位置: 首页 > 面试题库 >

Python:Pandas Dataframe如何将整个列与标量相乘

章盛
2023-03-14
问题内容

如何将数据框给定列的每个元素与标量相乘?(我曾尝试过寻找SO,但似乎找不到正确的解决方案)

做类似的事情:

df['quantity'] *= -1 # trying to multiply each row's quantity column with -1

给我警告:

A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

注意:如果可能的话,我不想遍历数据框并执行类似的操作…因为我认为整个列上的任何标准数学运算都应该是可能的,而不必编写循环

for idx, row in df.iterrows():
    df.loc[idx, 'quantity'] *= -1

编辑

我正在跑步0.16.2熊猫

完整跟踪:

 SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead

See the the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
  self.obj[item] = s

问题答案:

经过一些研究,这是答案:

df.loc[:,'quantity'] *= -1 #seems to prevent SettingWithCopyWarning


 类似资料:
  • 问题内容: 您好,所以我想将列表中的整数相乘。 例如; 输出: 所以我在网上搜索,大多数答案是关于将所有整数彼此相乘,例如: [1 * 2 * 3] 问题答案: 尝试列表理解: 这将每个元素乘以2。 当然,有多种方法可以做到这一点。如果您喜欢lambda函数和,甚至可以 将函数应用于中的每个元素。这等效于: 请注意,返回的是地图对象,而不是列表,因此,如果以后确实需要列表,则可以在以后使用该函数,

  • 问题内容: 这是一个数组 我将如何乘以并获得价值? 问题答案: 您可以使用内置功能: 或列出更pythonic的理解:

  • 我喜欢将具有相同行的两个矩阵的列的所有可能组合相乘。这意味着两个矩阵,例如和将生成包含元素的3x4矩阵。(和表示从1到3的行,表示从1到4的列) 我已经创建了一个例子,可以完成这项工作,但正在寻找没有for循环的优雅解决方案。 这里a是3x3矩阵,b是3x4矩阵,comb通过乘以各个列给出3x12矩阵的输出。我正在寻找优雅的解决方案,可以推广到这样的乘法到两个以上的矩阵。

  • 我有一个数据帧df1,其中索引是DatetimeIndex,有5列,col1,col2,col3,col4,col5。 我有另一个df2,它有一个几乎相等的datetimeindex(df1中可能缺少df1的某些天),还有一个“Value”列。 当日期相同时,我想将df1乘以df2的值。但不是所有列的col1。。。col5,只有col1。。。可乐 我可以看到有可能乘以col1*Value,然后乘以

  • 我试图在目标函数中加入变量的乘法。我有一个整数x_t,还有一个二进制变量w_t_1。我想在目标函数中有-1200*w\u t\u 1*x\u t。我怎么做?我在IBM文档中找不到任何东西。

  • 在努力使所有必要的计数变量正确后,我沮丧地发现它不起作用。第一次,是 它被强制为一个整数,因此变成。 在第二个循环重复中,只包含红色,变成一个简单的整数向量,。 我做错了什么?是否有一种方法可以初始化,这样它就不会被转换成一个数字向量,而是变成一个向量列表? 还有,除了“滚我自己的”,还有别的办法做整件事吗?