我有一個 51077 行 × 4 列的資料框。我需要在第三列中使用值 > 0.3 和 < -0.3 的行對資料框進行子集化。
我使用了以下內容:
df_filtered = df[np.logical_and(df["third column"] > 0.3, df["third column"] < -0.3)]
但結果只顯示了列名
我也試過:
df_filtered = df.query("third column < -0.3 & third column > 0.3")
但結果是一樣的。
我該如何解決?
uj5u.com熱心網友回復:
您還可以使用between和反轉結果:
df_filtered = df[~df['third_column'].between(-0.3, 0.3)]
例子:
>>> df
third_column
0 -0.190030
1 -0.205187
2 -0.066776
3 -0.264480
4 0.064962
5 0.024708
6 -0.354629 # Want to keep
7 -0.180228
8 0.261640
9 0.315986 # Want to keep
>>> df[~df['third_column'].between(-0.3, 0.3)]
third_column
6 -0.354629
9 0.315986
uj5u.com熱心網友回復:
你幾乎明白了:
df_filtered = df.loc[(df['third column'] > 0.3) | (df['third column'] < -0.3)]
或者
df_filtered = df[(df['third column'] > 0.3) | (df['third column'] < -0.3)]
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/349852.html
