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