python - 如何将一列的值与其他列中的多个值进行比较?

标签 python pandas

我不知道怎么问这个,所以我编了一个例子。 目标是将 AB 列的值与 CDE 分开。 如果值相同或更高 (>=),则返回“1”,否则返回“0”。

     A      B     C     D     E
1   101    103   100   101   99
2   102    100   101   99    103
3   100    99    103   100   98

期望的结果是这样的:

A               B       
C   D   E       C   D   E
1   1   1       1   1   1
1   1   0       0   1   0
0   1   1       0   0   1

理想情况下,我想要一个函数,最好的方法是什么?

最佳答案

直接将ABC、D、E进行比较,并将它们concat在一起

A = df[['C','D','E']].le(df[['A']].values).astype(int)
B = df[['C','D','E']].le(df[['B']].values).astype(int)

pd.concat([A,B], axis=1, keys=['A','B'])

Out[650]:
   A        B
   C  D  E  C  D  E
1  1  1  1  1  1  1
2  1  1  0  0  1  0
3  0  1  1  0  0  1

关于python - 如何将一列的值与其他列中的多个值进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58018596/

相关文章:

python-3.x - 将 NaN 文本列分离到其他数据框中

python - “Unknown String Format” - 解析 pandas dataframe 中的 URL 时出错

Python 日志记录 - logrotate 选项

python - 使用 OpenCV 和 PyAudio 同步音频和视频

python - ModuleNotFoundError: 没有名为 'tensorflow_hub' 的模块

python - 同一个 csv 中的多个工作表

python - 通过读取 csv 文件列表在 pandas 中动态创建数据框

python - 删除 Pandas DataFrame 中值不是 NaN 的所有行

python - 在 pandas 中透视数据框

python - 如何将时间字符串转换为秒?