python - 根据 df 中其他两列的比较设置列值

标签 python python-3.x pandas dataframe

我试图根据其他两列的比较将 df 列中的值设置为 0 或 1。

我最初的 df 是这样的:

col1   col2    col3
1      3       NaN
5      1       NaN
7      4       NaN
5      10      NaN

我正在使用此代码尝试在 col3 中设置值到 1 其中 col1大于col2所有其他行均为 0:

df[df['col1'] >= df['col2']]['col3'] = 1
df[df['col1'] < df['col2']]['col3'] = 0

这肯定是错误的方法,但我不知道还有什么方法可以解决它。

所需的结果是具有以下值的 df:

col1   col2    col3
1      3       0
5      1       1
7      4       1
5      10      0

提前致谢。

最佳答案

您可以使用:

df['col3'] = df.col1.ge(df.col2).view('i1')

print(df)

    col1  col2  col3
0     1     3     0
1     5     1     1
2     7     4     1
3     5    10     0

关于python - 根据 df 中其他两列的比较设置列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59650944/

相关文章:

Python:读取文件时如何忽略两个特定单词之间的文本?

python - 在 Tkinter 中将图像添加到按钮

python - 属性错误: 'ReadOnlyWorksheet' object has no attribute 'defined_names

python - 难以比较生成的和谷歌云存储提供的 CRC32c 校验和

python - Pandas Dataframe 合并列上的行以形成字典列表

python - python结构中的动态数组和结构

python - 在 pandas 中,有没有办法将行旋转到其他行的末尾?

python - python 中 stub 文件 (.pyi) 有什么用?

python - 将 YAML 文件读取为列表

python - 如何在 Pandas 数据框中反转 .astype(str)?