![](/img/trans.png)
[英]Pandas: Create a columns based on multiple other columns. Fail to apply()
[英]Pandas create multiple columns based on other columns
我有一个具有这种结构的巨大 df(720 列):
id A B C
1 1 0 1
2 1 0 1
3 1 1 1
我想根据以下计算创建一个新的 df:
if A and B = 1 then v1 = 1
if A and C = 1 then v2 = 1
if A and D = 1 then v3 = 1
if A and XX = 1 then v719 = 1
id V1 V2
1 0 1
2 0 1
3 1 1
因为我需要迭代 A vs B 和 C(实际上是 A vs 719 列),所以我正在寻找一种方法来编写这段代码,而无需对所有列执行类似的操作
df.loc[((df['A'] == 1) & (df['B'] == 1)), 'v1'] = 1
df.loc[((df['A'] == 1) & (df['C'] == 1)), 'v2'] = 1
df.loc[((df['C'] == 1) & (df['D'] == 1)), 'v2'] = 1
df.loc[((df['A'] == 1) & (df['XX'] == 1)), 'v719'] = 1
有任何想法吗?
对于你的问题我们可以做,因为 1 * 1 = 1
s=df.loc[:,'B':].mul(df.A,axis=0)
B C
0 0 1
1 0 1
2 1 1
s.columns=np.arange(s.shape[1])+1
df=df.join(s.add_prefix('v_'))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.