簡體   English   中英

根據值的計數刪除數據框上的列

[英]Dropping columns on a dataframe based on their count of values

嗨,我是大熊貓的新手,正在努力進行操作。 我有一個包含大量列的數據框 df,我只想保留計數超過 5000 個值的列數。

我嘗試了下面的循環,但它不起作用。 有什么簡單的方法可以做到這一點嗎? 還有我可以創建一個函數來將它應用到任何我想保留只有 n 個或更多值的列的數據幀嗎?

for column in df.columns: 
   if df[column].count() > 5000: 
      column = column
   else: 
      df[column].drop()

謝謝

我們可以使用DataFrame.dropna參數thresh DataFrame.dropna ,例如:

import pandas as pd
import numpy as np

# example dataframe
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, np.nan],
    'C': [np.nan, np.nan, 6],
    'D': [np.nan, np.nan, np.nan]
})


   A    B    C   D
0  1  4.0  NaN NaN
1  2  5.0  NaN NaN
2  3  NaN  6.0 NaN

我們將閾值設置為2 ,在您的情況下是5000

df.dropna(thresh=2, axis=1)

   A    B
0  1  4.0
1  2  5.0
2  3  NaN

注意C列和D列被刪除,因為它們的非 Na 值少於 2 個

嘗試這個:

newdf=df.copy()
for column in newdf.columns: 
    if df[column].count() <= 5000: 
        df=df.drop(column, axis=1) 

或等價物:

newdf=df.copy()
for column in newdf.columns: 
    if df[column].count() <= 5000: 
        del df.column

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM