我有一个df:
dfs = """
contract Valindex0 RB Valindex1
2 A00118 51 0 50
3 A00118 42 1 47
4 A00118 44 1 47
"""
df = pd.read_csv(StringIO(dfs.strip()), sep='\s+')
df:
contract Valindex0 RB Valindex1
2 A00118 51 0 50
3 A00118 42 1 47
4 A00118 44 1 47
我想在df['Valindex']的每一行中添加一个新列
此列值为
df['Valindex0']
或
df['Valindex1']
这取决于df['RB']:
if df['RB']==0:
df['Valindex'] = df['Valindex0']
elif df['RB']==1:
df['Valindex'] = df['Valindex1']
现在我正在使用apply lambda,但速度非常慢:
df['Valindex'] = df.apply(
lambda df: df["Valindex" + str(df["RB"])], axis=1)
输出应如下所示:
contract Valindex0 RB Valindex1 Valindex
2 A00118 51 0 50 51
3 A00118 42 1 47 47
4 A00118 44 1 47 47
有没有更快的办法
让我们试试看
使用^{} :
或
将^{} 用于多种情况和条件:
df
的输出:你可以试试^{}
相关问题 更多 >
编程相关推荐