Python 熊猫:根据条件递增列中的值

Python 熊猫:根据条件递增列中的值,python,pandas,dataframe,Python,Pandas,Dataframe,我有下面的数据帧,我想为值介于2和7之间的所有行增加“value” import pandas as pd df = pd.DataFrame({"value": range(1,11)}) df # Output value 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 我尝试了两种方法,第一种尝试失败,出现了一个错误。第二次尝试有效,但不是最好的解决方案。谁能提供更好的解决方案 # A

我有下面的数据帧,我想为值介于2和7之间的所有行增加“value”

import pandas as pd
df = pd.DataFrame({"value": range(1,11)})
df

# Output
    value
0   1
1   2
2   3
3   4
4   5
5   6
6   7
7   8
8   9
9   10
我尝试了两种方法,第一种尝试失败,出现了一个错误。第二次尝试有效,但不是最好的解决方案。谁能提供更好的解决方案

# Attempt #1
df.loc[2 < df['value'] < 7, 'value'] += 1

# Ouput
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

# Attempt #2
def increment(value):
    if value > 2 and value < 7:
        return value + 1
    return value
df["value"] = df["value"].apply(lambda x : increment(x))

# Output
    value
0   1
1   2
2   4
3   5
4   6
5   7
6   7
7   8
8   9
9   10
#尝试#1
df.loc[22且值<7:
返回值+1
返回值
df[“值”]=df[“值”]。应用(λx:增量(x))
#输出
价值
0   1
1   2
2   4
3   5
4   6
5   7
6   7
7   8
8   9
9   10
试试:

输出:

   value
0      1
1      2
2      4
3      5
4      6
5      7
6      7
7      8
8      9
9     10
   value
0      1
1      2
2      4
3      5
4      6
5      7
6      7
7      8
8      9
9     10

尝试:

输出:

   value
0      1
1      2
2      4
3      5
4      6
5      7
6      7
7      8
8      9
9     10
   value
0      1
1      2
2      4
3      5
4      6
5      7
6      7
7      8
8      9
9     10


您可以这样做:

df[(2 < df.value) & (df.value < 7)] += 1
两种情况下的输出:


您可以这样做:

df[(2 < df.value) & (df.value < 7)] += 1
两种情况下的输出: