wordpress bootsharp/seo技巧是什么意思
pd.DataFrame.loc可以使用一个或两个索引器。对于帖子的其余部分,我将第一个索引器表示为i,将第二个索引器表示为j。
如果只提供了一个索引器,它将应用于数据帧的索引,并且假定丢失的索引器代表所有列。所以以下两个例子是等价的。
> df.loc [i]
> df.loc [i,:]
其中:用于表示所有列。
如果两个索引器都存在,则i引用索引值,j引用列值。
现在我们可以关注i和j可以假设的值的类型。我们使用以下数据帧df作为示例:
df = pd.DataFrame([[1, 2], [3, 4]], index=['A', 'B'], columns=['X', 'Y'])
loc已写成i和j可以
>标量应该是相应索引对象中的值
df.loc['A', 'Y']
2
>其元素也是相应索引对象成员的数组(请注意,我传递给loc的数组的顺序是受到尊重的
df.loc[['B', 'A'], 'X']
B 3
A 1
Name: X, dtype: int64
>注意传递数组时返回对象的维度。我是上面的数组,loc返回一个对象,其中返回带有这些值的索引。在这种情况下,因为j是标量,loc返回了一个pd.Series对象。如果我们为i和j传递一个数组,我们可以操纵它来返回一个数据帧,并且该数组可能只是一个单值数组。
df.loc[['B', 'A'], ['X']]
X
B 3
A 1
>布尔数组,其元素为True或False,其长度与相应索引的长度相匹配。在这种情况下,loc只是抓取布尔数组为True的行(或列)。
df.loc[[True, False], ['X']]
X
A 1
除了可以传递给loc的索引器之外,它还允许您进行分配。现在我们可以分解您提供的代码行。
iris_data.loc[iris_data['class'] == 'versicolor', 'class'] = 'Iris-versicolor'
> iris_data [‘class’] ==’versicolor’返回一个布尔数组。
> class是一个标量,表示columns对象中的值。
> iris_data.loc [iris_data [‘class’] ==’versicolor’,’class’]返回一个pd.Series对象,该对象包含’class’为’versicolor’的所有行的’class’列
>与赋值运算符一起使用时:
iris_data.loc[iris_data['class'] == 'versicolor', 'class'] = 'Iris-versicolor'
我们为“class”列中的所有元素指定“Iris-versicolor”,其中“class”为“versicolor”