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)
这将返回警告并保持数据帧不变:
^{pr2}$下面的代码不会生成警告,但仍然保持DataFrame不变。在
df.loc[:,col_list].dropna(axis=1, thresh=2, inplace=True)
问题:
我不能在列上循环,一次只应用一列dropna,因为熊猫.Series.dropna没有“thresh”参数。在
我认为问题是
df['col_list']
或者切片创建了一个新的df,inplace=True
对该df而不是原始df产生影响。在您可能需要使用
subset
参数,并将列列表传递给它。在df.dropna(axis=1, thresh=2, subset=col_list,inplace = True)
有趣的是,
dropna
不支持此功能,但有一个解决方法。在顺便说一句
很抱歉,即使使用
inplace=True
,也会生成一个副本。唯一的区别是副本被就地指定回原始对象,因此不会返回新对象。在相关问题 更多 >
编程相关推荐