列で構成されるパンダデータフレームeucデータがあります
code1 code2 euclidean_distance
ユークリッド距離でソートされたcode1のグループごとに上位50行を取得したかったので、これを使用しました。
matrix_top_50 = euc_data.sort_values(['code1', 'euclidean_distance'])
.groupby('code1').head(50).reset_index(drop=True)
次に、ユークリッド距離でソートされたcode1のグループごとに次の100行を取得するために、別の行列を作成したいと思います。
そのために私は.ilocを使おうとしました
start = 51
end = 151
next_matrix = euc_data.sort_values(['code1', 'euclidean_distance'])
.groupby('code1').iloc[start:end].reset_index(drop=True)
しかし、エラーが発生しています:
Cannot access callable attribute 'iloc' of 'DataFrameGroupBy' objects, try using the 'apply' method
どうすればこれを達成できますか?
私はあなたが必要だと思うGroupBy.apply
が、必要なデータを使用した行が含まれてする必要がされてstart
とend
、それ以外のエラー:
ext_matrix = (euc_data.sort_values(['code1', 'euclidean_distance'])
.groupby('code1')
.apply(lambda x: x.iloc[start:end])
.reset_index(drop=True)
)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加