Python 使用和不使用.loc筛选数据帧

Python 使用和不使用.loc筛选数据帧,python,pandas,Python,Pandas,关于过滤数据帧的概念,我有一个简单的问题。假设我有以下数据帧: df = pd.DataFrame({'AAA': [4, 5, 6, 7],'BBB': [10, 20, 30, 40],'CCC': [100, 50, -30, -50]}) 我想根据一些条件对它进行一些修改。 如果我运行以下代码,我将得到所需的行: 方法a df[(df.AAA如果需要通过掩码和列名设置新值,则始终是必要的,因为在这里选择列名CCC: df.loc[(df.AAA <= 5) & (df.

关于过滤数据帧的概念,我有一个简单的问题。假设我有以下数据帧:

df = pd.DataFrame({'AAA': [4, 5, 6, 7],'BBB': [10, 20, 30, 40],'CCC': [100, 50, -30, -50]})

我想根据一些条件对它进行一些修改。 如果我运行以下代码,我将得到所需的行:

方法a


df[(df.AAA如果需要通过掩码和列名设置新值,则始终是必要的,因为在这里选择列名
CCC

df.loc[(df.AAA <= 5) & (df.BBB <= 10), 'CCC'] = -1
print (df)
   AAA  BBB  CCC
0    4   10   -1
1    5   20   50
2    6   30  -30
3    7   40  -50
但如果需要设置所有列,请删除
loc
和列名:

df[(df.AAA <= 5) & (df.BBB <= 10)] = -1
print (df)
   AAA  BBB  CCC
0   -1   -1   -1
1    5   20   50
2    6   30  -30
3    7   40  -50
df[(df.AAA使用
df['CCC'][(df.AAA
df[(df.AAA <= 5) & (df.BBB <= 10), 'CCC'] = -1
df.loc[(df.AAA <= 5) & (df.BBB <= 10), 'CCC'] = -1
df.loc[(df.AAA <= 5) & (df.BBB <= 10), 'CCC'] = -1
print (df)
   AAA  BBB  CCC
0    4   10   -1
1    5   20   50
2    6   30  -30
3    7   40  -50
df.loc[(df.AAA <= 5) & (df.BBB <= 10), ['CCC', 'AAA']] = -1
print (df)
   AAA  BBB  CCC
0   -1   10   -1
1    5   20   50
2    6   30  -30
3    7   40  -50
df[(df.AAA <= 5) & (df.BBB <= 10)] = -1
print (df)
   AAA  BBB  CCC
0   -1   -1   -1
1    5   20   50
2    6   30  -30
3    7   40  -50
df['CCC'][(df.AAA <= 5) & (df.BBB <= 10)] = -1