【问题标题】:python3 modifying rows in a dataframe based on a conditionpython3根据条件修改数据框中的行
【发布时间】:2017-11-13 09:19:50
【问题描述】:

我有一个类似于

的数据框
A    B      C
1    4      x
2    8      y
3    7      z
4    12     y
5    10     b

我需要根据条件修改B列

if B <= 5 then B = 1
if B > 5 and B <= 10 then B = 2
if B > 10 and B < 15 then B = 3

这样我的数据框就变成了

A    B      C
1    1      x
2    2      y
3    2      z
4    3      y
5    2      b

如果我必须先添加一个新列然后删除 B 列,我可以。有人可以帮忙吗?

【问题讨论】:

    标签: python-3.x dataframe conditional rows


    【解决方案1】:

    你应该使用apply函数来实现这个。

    def check(row):
        if (row['B']) <= 5:
            return 1
        elif (row['B'] > 5) and (row['B'] <= 10):
            return 2
        elif (row['B'] > 10) and (row['B'] <= 15):
            return 3
    

    这些会将函数应用于每一行,然后您可以执行检查。

    df['B'] = df.apply(check, axis = 1)
    

    那么生成的 DF 将如下所示:

    A    B      C
    1    1      x
    2    2      y
    3    2      z
    4    3      y
    5    2      b
    

    更多文档可用here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-02-02
      • 1970-01-01
      • 2018-02-06
      • 2020-04-29
      • 2022-09-23
      • 2018-11-29
      • 1970-01-01
      • 2019-05-16
      相关资源
      最近更新 更多