0
私は2つのデータフレームを持っています。まず:パンダ。カットと.isin機能
s = pd.Series(["(-20, -10]", "(-140, -130]", "(0, 10]"], dtype = "category")
t = pd.Series(["(0, 50]", "(100, 150]", "(-50, 0]"], dtype = "category")
df_loc = pd.DataFrame({'loc_x_bin': s, 'loc_y_bin': t })
df_loc
[out]:
loc_x_bin loc_y_bin
(-20, -10] (0, 50]
(-140, -130] (100, 150]
(0, 10] (-50, 0]
第二:
a = pd.Series([-15, 30, 5, -135, 5, -15])
b = pd.Series([25, 35, -45, -200, 25, 25])
data = pd.DataFrame({'loc_x': a, 'loc_y': b})
data
[out]:
loc_x loc_y
-15 25
30 35
5 -45
-135 -200
5 25
-15 25
私はloc_x
とloc_y
がloc_x_bin
と同じ行のloc_y_bin
であるかどうかを把握しようとしています。詳細については、この記事を参照してください。 Are values in one dataframe in bins of another dataframe?。しかし、私が今調べようとしているのは、下の出力の3行目と5行目が「False」である理由です。
[in]: xstep = 10
[in]: pd.cut(data.loc_x, np.arange(-500, 500, xstep)).isin(df_loc.loc_x_bin))
[out]:
0 True
1 False
2 False*
3 True
4 False*
5 True
私はその下のコードを実行することが(0,10]
ビンを含んでいるので(0、10]はdf_loc.loc_x_bin
「である」ように私には思える。なぜ私が?
False
を取得しています
[in]:
print pd.cut(data.loc_x, np.arange(-500, 500, xstep))
print df_loc.loc_x_bin
[out]:
0 (-20, -10]
1 (20, 30]
2 (0, 10]*
3 (-140, -130]
4 (0, 10]*
5 (-20, -10]
0 (-20, -10]
1 (-140, -130]
2 (0, 10]*
'xstep'は定義されていません。推測すると、 'xstep = 10'と思われます。 – Neapolitan
いいえ、私は' xstep'を定義していません。コードに含めるのを忘れてしまいました。 – Hound