Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于数字和字符串条件的Python语句_Python_Pandas_If Statement_Syntax Error_Conditional Statements - Fatal编程技术网

基于数字和字符串条件的Python语句

基于数字和字符串条件的Python语句,python,pandas,if-statement,syntax-error,conditional-statements,Python,Pandas,If Statement,Syntax Error,Conditional Statements,使用数据帧df: ID | Category | Price 23 A 101 34 B 50 24 A 55 我想添加一个标志,用于所有a类,价格小于等于100 这是我的代码: df['Flag'][(df['Price'] <=100)&(df['Category']=='A')] = 'X' 当我尝试对标志进行筛选时,会出现以下错误: SettingWithCopyWarning: A value is

使用数据帧df:

ID | Category | Price
23      A       101
34      B       50
24      A       55
我想添加一个标志,用于所有a类,价格小于等于100

这是我的代码:

df['Flag'][(df['Price'] <=100)&(df['Category']=='A')] = 'X'
当我尝试对标志进行筛选时,会出现以下错误:

SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame
df.loc[df['Flag'] == 'X']

TypeError: invalid type comparison
预期产出:

ID | Category | Price  Flag
23      A       101     
34      B       50
24      A       55       X
使用
loc

df.loc[(df['Price'] <=100)&(df['Category']=='A'), "Flag"] = 'X'
df.loc[(df['Price']您可以使用
map()

>>df['flag']=((df['Category']='A')和(df['Price']>>df
ID类别价格标志
0 23 A 101
1 34 B 50
2 24 A 55 X

可能重复Im获取此错误现在AttributeError:'str'对象没有属性'loc'。您必须在数据框对象上应用
loc
。是否确实要执行
df.loc
>>> df['flag'] = ((df['Category'] == 'A') & (df['Price'] <= 100)).map({True: 'X', False: ''})
>>> df
   ID Category  Price flag
0  23        A    101
1  34        B     50
2  24        A     55    X