我正在将代码从R转换为Python,并希望在基于其他列的基础上使用dfply
语法/管道改变新列的帮助
在这个例子中,我想从col1
中减去2,如果col2
是'c',否则加4
import pandas as pd
import numpy as np
from dfply import *
col1 = [1,2,3,4,5]
col2 = ['a', 'b', 'c', 'd', 'e']
df = pd.DataFrame(data = {'col1': col1, 'col2': col2})
在R我会做:
^{pr2}$但Python似乎不喜欢这样:
new_df = (df >>
mutate(newCol = np.where(X.col2 == 'c', X.col1 - 2, X.col1 + 4)))
我得到一个错误“无效的数组结构”
请注意,这很好:
new_df = (df >>
mutate(newCol = X.col1 - 2))
我将使用apply/lambda函数。X是dataframe行,axis=1表示对每列应用lambda函数。在
这里的python等价物是一个内联
if else
表达式(或ternary operator):就会变成
^{pr2}$相关问题 更多 >
编程相关推荐