![](/img/trans.png)
[英]Remove rows when the occurrence of a column value in the data frame is less than a certain number using pandas/python?
[英]Pandas data frame select all rows less than a column content float values
我有一個如下所示的數據框。我需要從數據框中選擇列值小於或等於 0.3768 的所有行。 但我收到一個錯誤。
下面是我的數據框。
我需要選擇列值小於或等於 0.3768 的所有行。
下面是我的代碼
for column in df_thd_funct_mode1_T:
new_df = df_thd_funct_mode1_T.loc[(np.isclose(df_thd_funct_mode1_T[column] <= .3768))]
我收到如下所示的錯誤。
類型錯誤:“str”和“float”的實例之間不支持“<=”
我可以知道如何解決這個問題
我運行 Christian 提供的腳本。但我在新數據框中得到的值大於 .3768。
如果要檢查多個列,則必須添加條件來檢查每個列。 每個條件都應該是這樣的:
df.loc[df['column_name'] <= 0.3768 ]
檢查這些示例,它應該對您的問題有所幫助: https ://www.statology.org/pandas-select-rows-based-on-column-values/
你可以在這里試試這個:
new_df = df_thd_funct_mode1_T[df_thd_funct_mode1_T.apply(lambda row: all(float(column) <= .3768 for column in row), axis=1)]
在這里,您不再需要示例中的循環。
我基本上通過那里的數據框和我檢查的每一行, all
值是否小於 0.3768。
如果要過濾這樣的內容,即只要該行中有任何小於 .3768 的值就接受該行,則必須將all
替換為any
。
當然,這僅在所有列僅包含浮點數的條件下才有效。 如果沒有,那么您將遇到錯誤,並試圖將其轉換為浮點數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.