python - 如何在 Graphlab SFrame 中通过划分两列来创建新列?

标签 python lambda dataframe calculated-columns graphlab

给定一个 Graphlab SFrame:

+-------+------------+---------+-----------+
| Store |    Date    |  Sales  | Customers |
+-------+------------+---------+-----------+
|   1   | 2015-07-31 |  5263.0 |   555.0   |
|   2   | 2015-07-31 |  6064.0 |   625.0   |
|   3   | 2015-07-31 |  8314.0 |   821.0   |
|   4   | 2015-07-31 | 13995.0 |   1498.0  |
|   3   | 2015-07-20 |  4822.0 |   559.0   |
|   2   | 2015-07-10 |  5651.0 |   589.0   |
|   4   | 2015-07-11 | 15344.0 |   1414.0  |
|   5   | 2015-07-23 |  8492.0 |   833.0   |
|   2   | 2015-07-19 |  8565.0 |   687.0   |
|   10  | 2015-07-09 |  7185.0 |   681.0   |
+-------+------------+---------+-----------+
[986159 rows x 4 columns]

如何通过将每行的销售额除以客户数来添加“每位客户的销售额”列?

我已尝试以下方法,但它们不起作用(sf 是我的SFrame:

sf['salespercustomer'] = sf.apply(lambda x: sf['Sales']/sf['Customers'])

有趣的是,我得到了 SArray 的输出:

sf['Sales'] / sf['Customers']

但这并不能真正帮助将列添加回 sf,因此这不起作用 =( :

sf['salescustomer'] = sf['Sales'] / sf['Customers']

最佳答案

最后一行代码应该可以解决问题,但你说你的 SFrame 名为 sf,而不是 train。当我用 sf 尝试它时,它工作得很好。

关于python - 如何在 Graphlab SFrame 中通过划分两列来创建新列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33792798/

相关文章:

C# 动态创建 Lambda 表达式

c++ - 使用 C++ Lambda 函数作为 Qt 中的槽是否有助于保持库的二进制兼容性?

python - 不止一个条件满足numpy select

python - 根据条件将大量列中的值替换为另一个列值

python - 如何在 Python 中添加一个字符串和一个 int 对象?

python - 用从 0 开始的唯一项目替换列表中的项目

c++ - 如果我在 lambda 中删除包含该 lambda 的对象,究竟会发生什么?

python - 我不能按列名提取数据?

python:根据部分标题提取文件,并在标题中使用分割条件

python - Pandas 数据框通过逗号将重复的列组合成一个单独的数据