【发布时间】:2018-12-04 15:29:45
【问题描述】:
import pandas as pd
df = pd.DataFrame({
'col1': [99, None, 99],
'col2': [4, 5, 6],
'col3': [7, None, None]})
col_list = ['col1', 'col2']
df[col_list].dropna(axis=1, thresh=2, inplace = True)
这会返回一个警告并保持数据框不变:
SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame
以下内容不会产生警告,但仍保持 DataFrame 不变。
df.loc[:,col_list].dropna(axis=1, thresh=2, inplace=True)
问题:
- 从用户指定的列列表中,从数据框中删除那些具有小于“thresh”非空值的列。不对列表中没有的列进行任何更改。
- 我需要使用 inplace=True 来避免复制数据框,因为它很大
我无法遍历列并一次应用 dropna 列,因为 pandas.Series.dropna 没有“thresh”参数。
【问题讨论】: