Error: The truth value of a Series is ambiguous
Error: The truth value of a Series is ambiguous
我正在尝试使用以下代码生成新列
list = ['LHR','-1','-3','LGW','MAD','SIN','KUL','JFK','HKG','PVG','IST','SDA','GLA']
for i in list:
if plotdata.loc[plotdata['LOCATION'] == i] :
plotdata['city'] = plotdata['LOCATION']
else:
plotdata['city'] = 'others'
我收到以下错误:
ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
数据类型是类别,请问为什么会出现这个错误?
不确定为什么会出现此错误。但是,最好不要循环 pandas.
您可以通过将“城市”设置为“位置”的任意位置然后恢复为“其他”(如果它不在列表中)来避免该错误。
city_list = ['LHR','-1','-3','LGW','MAD','SIN','KUL','JFK','HKG','PVG','IST','SDA','GLA']
plotdata['city'] = plotdata['LOCATION']
plotdata.loc[~plotdata['city'].isin(city_list), 'city'] = 'other'
您收到此错误是因为以下代码:
if plotdata.loc[plotdata['LOCATION'] == i]
正在测试 .loc()
返回的数据帧 plotdata
的子集,这又是因为布尔掩码:
plotdata['LOCATION'] == i
returns 布尔数组。
总体而言,由于 .loc()
returns 数据帧的一个子集,因此消息:
ValueError: DataFrame 的真值 不明确。
我正在尝试使用以下代码生成新列
list = ['LHR','-1','-3','LGW','MAD','SIN','KUL','JFK','HKG','PVG','IST','SDA','GLA']
for i in list:
if plotdata.loc[plotdata['LOCATION'] == i] :
plotdata['city'] = plotdata['LOCATION']
else:
plotdata['city'] = 'others'
我收到以下错误:
ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
数据类型是类别,请问为什么会出现这个错误?
不确定为什么会出现此错误。但是,最好不要循环 pandas.
您可以通过将“城市”设置为“位置”的任意位置然后恢复为“其他”(如果它不在列表中)来避免该错误。
city_list = ['LHR','-1','-3','LGW','MAD','SIN','KUL','JFK','HKG','PVG','IST','SDA','GLA']
plotdata['city'] = plotdata['LOCATION']
plotdata.loc[~plotdata['city'].isin(city_list), 'city'] = 'other'
您收到此错误是因为以下代码:
if plotdata.loc[plotdata['LOCATION'] == i]
正在测试 .loc()
返回的数据帧 plotdata
的子集,这又是因为布尔掩码:
plotdata['LOCATION'] == i
returns 布尔数组。
总体而言,由于 .loc()
returns 数据帧的一个子集,因此消息:
ValueError: DataFrame 的真值 不明确。