【发布时间】:2016-05-19 08:26:59
【问题描述】:
我有以下熊猫 df:
import pandas as pd
import numpy as np
pd_df = pd.DataFrame({'Qu1': ['apple', 'potato', 'cheese', 'banana', 'cheese', 'banana', 'cheese', 'potato', 'egg'],
'Qu2': ['sausage', 'banana', 'apple', 'apple', 'apple', np.nan, 'banana', 'banana', 'banana'],
'Qu3': ['apple', 'potato', 'sausage', 'cheese', 'cheese', 'potato', 'cheese', 'potato', 'egg']})
我只想在 Qu1 和 Qu2 两列上实现 where() 并保留其余部分
original stackoverflow question
,所以我创建了pd1
pd1 = pd_df.where(pd_df.apply(lambda x: x.map(x.value_counts()))>=2,
"other")[['Qu1', 'Qu2']]
然后我将pd_df,pd_df['Qu3'] 的其余部分添加到pd1
pd1['Qu3'] = pd_df['Qu3']
pd_df = []
我的问题是:最初我想在df 的一部分上执行where() 并保持其余列不变,那么上面的代码对大型数据集是否有危险?我可以这样破坏原始数据吗?如果是,最好的方法是什么?
非常感谢!
【问题讨论】:
标签: python python-2.7 pandas