Я следующие панды ДФ:Исключить столбцы из панд где()
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']})
Я хотел бы реализовать where()
на двух колонках только Qu1
и Qu2
и держать остальное 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 = []
Мой вопрос: Первоначально я хочу, чтобы выполнить where()
на части df
и сохранить остальную часть колонн, как есть, так что может вышеприведенный код быть опасным для большого набора данных? Могу ли я вредить исходным данным таким образом? Если да, то какой лучший способ это сделать?
Большое спасибо!
Спасибо! Мой набор данных составляет приблизительно 30G, будет ли «копировать» производить еще 30G-набор данных в памяти? – Toren
Ваш вопрос показал, что вы создаете копию 2 столбцов, если вы просто хотите перезаписать эти столбцы в оригинале, тогда вы можете просто удалить строку 'copy' и сделать вторую строку на исходном df – EdChum