考虑下面的数据集存储在熊猫数据文件<代码> DFX < /代码>:
A B
1 2
4 6
7 9
我有一个函数是:
def someThingSpecial(x,y)
# z = do something special with x,y
return z
现在,我想在df
中创建一个新列,其中包含计算出的z值
查看其他SO示例,我尝试了几个变体,包括:
dfX['C'] = dfX.apply(lambda x: someThingSpecial(x=x['A'], y=x['B']), axis=1)
返回错误。正确的方法是什么?
如果你的函数只需要一列的值,那么这样做,而不是coldpace的答案:
dfX['A'].apply(your_func)
要存储它:
dfX['C'] = dfX['A'].apply(your_func)
这似乎在v0上对我有效。21.看一看-
df
A B
0 1 2
1 4 6
2 7 9
def someThingSpecial(x,y):
return x + y
df.apply(lambda x: someThingSpecial(x.A, x.B), 1)
0 3
1 10
2 16
dtype: int64
您可能想尝试将熊猫版本升级到最新的稳定版本(目前为0.21)。
这是另一个选择。你可以矢量化你的函数。
v = np.vectorize(someThingSpecial)
v
现在接受数组,但分别对每对元素进行操作。请注意,这只是隐藏了循环,就像apply一样,但要干净得多。现在,您可以这样计算C
-
df['C'] = v(df.A, df.B)
问题内容: 我想比较在创建新列的两列的值。如果它们等于1,我想要1,否则等于0。 我得到了以下错误 问题答案: 您需要将布尔型蒙版转换为: 样品: 因为比较列的输出不是标量,而是(和)和值,所以会出现错误。 因此需要或 用于返回标量或。
在我的scala程序中,我有一个dataframe,其中有两列和(类型都为)。除此之外,我有一个先前定义的对象和一些方法和属性。在这里,我想要使用dataframe的当前值和中的属性向dataframe添加一个新列。 例如,如果我有下面的dataframe: 谢谢你。
我想将我的自定义函数(它使用if-else梯形)应用到数据帧每行中的这六列(,,,,,)。 我已经尝试了不同的方法从其他问题,但似乎仍然不能找到正确的答案,我的问题。关键的一点是,如果这个人被算作西班牙裔,他们就不能算作其他任何东西。即使他们在另一个种族栏中有一个“1”,他们仍然被算作西班牙裔,而不是两个或两个以上的种族。类似地,如果所有ERI列的总和大于1,则被计为两个或两个以上的种族,不能被计
我想在Pandas数据集中创建一个新列,基于另外两个列的值。 现在,应该如下所示: 有什么帮助吗?
问题内容: 我需要用一列更新表的每一行,作为同一表中其他两列的总和 像这样 UPDATE table1 SET table1.column1 =每行的总和(table1.column1 + table1.column2) 我试过了 因此,我可以通过首先选择所有rowId来迭代每个rowid来做到这一点 但是我需要在一个查询中处理该表中的所有行 当我尝试: 这将汇总column1和column2的所
我想将熊猫数据框中的所有列连接起来,用空格分隔 (" ").有没有比df['新栏目']=df['a'] " " df['b']"...