2024-04-20 15:30:14 发布
网友
假设我有四列,每列中都有字符串(df)。 如果我想比较一下它们是否都一样,我想出了这样的办法:
df['same_FB'] = np.where( (df['FB_a'] == df['FB_b']) & (df['FB_a'] == df['FB_c']) & (df['FB_a'] == df['FB_d']), 1,0)
它工作得很好,但它看起来不太好,如果我不得不添加第五或第六列,它会变得更难看。 是否有其他方法测试所有列是否相同? 或者,我可以计算这四列中的不同值
您可以使用^{}+^{}:
x,*y = ['FB_a', 'FB_b', 'Fb_c', 'FB_d'] df['same_FB'] = df[y].eq(df[x], axis=0).all(1).view('i1')
或者,您可以使用nunique:
nunique
c = ['FB_a', 'FB_b', 'Fb_c', 'FB_d'] df['same_FB'] = df[c].nunique(axis=1, dropna=False).eq(1).view('i1')
例如:
print(df) A B C D E 0 10 1 1 1 1 1 20 2 2 2 2 2 30 3 3 3 3 3 40 4 4 4 4 x,*y = ['B', 'C', 'D', 'E'] df['same'] = df[y].eq(df[x], axis=0).all(1).view('i1') print(df) A B C D E same 0 10 1 1 1 1 1 1 20 2 2 2 2 1 2 30 3 3 3 3 1 3 40 4 4 4 4 1
您可以使用链式python逻辑。代码如下:
df['same_FB'] = np.where((df['FB_a'] == df['FB_b'] == df['FB_c'] == df['FB_d']), 1,0)
您可以使用^{} +^{} :
或者,您可以使用
nunique
:例如:
您可以使用链式python逻辑。代码如下:
相关问题 更多 >
编程相关推荐