我只是想用熊猫分类一些数据 基本上我的数据是一个字符串,我想根据X个第一个字符的值修改它。
我试过了:
data['BO In Code'].loc[data['BO In Code'][:2]=='XU']=1
提供了无法对齐的布尔系列键
这:
data['BO In Code'].loc[str(data['BO In Code'])[:2]=='XU']=1
和此:
data['BO In Code'].loc[data['BO In Code'].index[:2]=='XU']=1
给了我:
'不能使用单个bool索引到setitem'
答案 0 :(得分:3)
您需要使用str
字符串访问者
data.loc[data['BO In Code'].str[:2]=='XU', 'BO In Code'] = 1
解释
对于数据帧, .loc
可以使用两个索引器。这些索引器可以是单个索引值,索引值列表,或者与被切片的相应维度相等长度的布尔数组。
在这种情况下,第一个索引器是一个布尔数组,其中每个值都是'BO In Code'
列中前两个字符是否等于'XU'
的真实性。我们使用它来过滤数据帧的行。我们仍然需要指定我们想要的列。发生我们想要'BO In Code'
。
所以'BO In Code'
的第一个引用是找到布尔切片。对'BO In Code'
的第二个引用是指定我们想要的列。它不必是同一列。