[英]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.