Python 为什么可以';在使用apply之后,我是否使用loc访问数据帧上的元素?

Python 为什么可以';在使用apply之后,我是否使用loc访问数据帧上的元素?,python,dataframe,apply,series,Python,Dataframe,Apply,Series,我想按我设置的ID列对数据集进行分组。 因此,我: df_grouped=df_grouped.groupby(by='groupID').apply(创建ohlc) 创建ohlc的步骤如下: def create_ohlc(data): data['open'] = data.loc[0, 'price'] data['high'] =data.loc[:, 'price'].max() data['low'] = data.loc[:, 'price'].min()

我想按我设置的ID列对数据集进行分组。 因此,我: df_grouped=df_grouped.groupby(by='groupID').apply(创建ohlc)

创建ohlc的步骤如下:

def create_ohlc(data):
    data['open'] = data.loc[0, 'price']
    data['high'] =data.loc[:, 'price'].max()
    data['low'] = data.loc[:, 'price'].min()
    data['close'] = data.loc[-1, 'price']
    return data
我可以这样做来修复它: def创建_ohlc(数据): 数据['open']=data.loc[data.index[0],'price'] 数据['high']=data.loc[:,'price'].max() data['low']=data.loc[:,'price'].min() 数据['close']=data.loc[data.index[-1],'price'] 返回数据

但我还是不明白发生了什么。
这需要一点时间来完成。有什么问题吗?

这是因为
loc
通过标签获取行。 另一方面,
iloc
通过索引获取行


另请参见

如果要结合使用整数索引和标签索引,最好使用整数索引并获取标签的索引

data['open'] = data.iloc[0, data.columns.get_loc('price')]