アップデート2:あなたはは両方x
とy
がdf_loc
(またはで同じ行からのビンに属していることを確認したい場合10):
xstep = 10
ystep = 50
In [201]: (df.assign(bin=(pd.cut(df.loc_x, np.arange(-500, 500, xstep)).astype(str)
.....: +
.....: pd.cut(df.loc_y, np.arange(-500, 500, ystep)).astype(str)
.....: )
.....: )
.....:)['bin'].isin(df_loc.sum(axis=1))
Out[201]:
0 True
1 False
2 True
3 False
4 False
Name: bin, dtype: bool
説明:
In [202]: (df.assign(bin=(pd.cut(df.loc_x, np.arange(-500, 500, xstep)).astype(str)
.....: +
.....: pd.cut(df.loc_y, np.arange(-500, 500, ystep)).astype(str)
.....: )
.....: )
.....:)
Out[202]:
loc_x loc_y bin
0 -15 25 (-20, -10](0, 50]
1 30 35 (20, 30](0, 50]
2 5 -45 (0, 10](-50, 0]
3 -135 -200 (-140, -130](-250, -200]
4 5 25 (0, 10](0, 50]
In [203]: df_loc.sum(axis=1)
Out[203]:
0 (-20, -10](0, 50]
1 (-140, -130](100, 150]
2 (0, 10](-50, 0]
dtype: object
UPDATE:
:あなたは
x
が
loc_x_bin
と
y
に属しているかどうかを確認したい場合は
loc_y_bin
(必ずしも
df_loc
の同じ行から)に属しています
df_loc.dtypes
に両方の列のcategory
が表示されない場合は、c最初category
DTYPEにごカテゴリーonvert:
df_loc.loc_x_bin = df_loc.loc_x_bin.astype('category')
df_loc.loc_y_bin = df_loc.loc_y_bin.astype('category')
あなたはdf
"フライ上" であなたのコラムを分類することができます
xstep = 10
ystep = 50
df['in_bins'] = ( (pd.cut(df.loc_x, np.arange(-500, 500, xstep)).isin(df_loc.loc_x_bin))
&
(pd.cut(df.loc_y, np.arange(-500, 500, ystep)).isin(df_loc.loc_y_bin))
)
はテスト:
In [130]: df['in_bins'] = ( (pd.cut(df.loc_x, np.arange(-500, 500, xstep)).isin(df_loc.loc_x_bin))
.....: &
.....: (pd.cut(df.loc_y, np.arange(-500, 500, ystep)).isin(df_loc.loc_y_bin))
.....: )
In [131]: df
Out[131]:
loc_x loc_y in_bins
0 -15 25 True
1 30 35 False
2 5 -45 True
3 -135 -200 False
何でありますか'loc_df'のオブジェクト?それらの文字列ですか? ''(-20、-10) '' – piRSquared
これらはカテゴリ – Hound
で、' type(loc_df.iloc [0、0]) 'を実行して返事を返します – piRSquared