3 examples of 'pandas keep only certain columns' in Python

Every line of 'pandas keep only certain columns' code snippets is scanned for vulnerabilities by our powerful machine learning engine that combs millions of open source libraries, ensuring your Python code is secure.

All examples are scanned by Snyk Code

By copying the Snyk Code Snippets you agree to
84def _pdSearch(df, *keep):
85 keyList = list(df.keys())
86 # For each keep:
87 index, indexCol = [], []
88 for k in keep:
89 if type(k) is not list:
90 k = [k]
91 # For each & condition:
92 for iN, iS in enumerate(k):
93 colName, toKeep = iS[0], iS[1]
94 # Check if the column exist :
95 if keyList.count(colName):
96 if type(toKeep) is not list:
97 toKeep = [toKeep]
98 # Then search in df:
99 indS = []
100 for jN, jS in enumerate(toKeep):
101 indS.extend(list(n.where(df[colName] == jS)[0]))
102 if iN == 0:
103 indSet = set(indS)
104 else:
105 indSet = indSet.intersection(set(indS))
106 else:
107 warn('No column "'+colName +
108 '" found. This argument has been ignored from your search'
109 )
110 indSet = []
111
112 index.append(list(indSet))
113
114 return index
80def _clean_columns(df, keep_colnames):
81 new_colnames = []
82 for i,colname in enumerate(df.columns):
83 if colname not in keep_colnames:
84 new_colnames.append(i)
85 else:
86 new_colnames.append(colname)
87 return new_colnames
332def dropcols(df, start=None, end=None):
333 """Drop columns that contain NaN within [start, end] inclusive.
334
335 A wrapper around DataFrame.dropna() that builds an easier *subset*
336 syntax for tseries-indexed DataFrames.
337
338 Parameters
339 ----------
340 df : DataFrame
341 start : str or datetime, default None
342 start cutoff date, inclusive
343 end : str or datetime, default None
344 end cutoff date, inclusive
345
346 Example
347 -------
348 df = DataFrame(np.random.randn(10,3),
349 index=pd.date_range('2017', periods=10))
350
351 # Drop in some NaN
352 df.set_value('2017-01-04', 0, np.nan)
353 df.set_value('2017-01-02', 2, np.nan)
354 df.loc['2017-01-05':, 1] = np.nan
355
356 # only col2 will be kept--its NaN value falls before `start`
357 print(dropcols(df, start='2017-01-03'))
358 2
359 2017-01-01 0.12939
360 2017-01-02 NaN
361 2017-01-03 0.16596
362 2017-01-04 1.06442
363 2017-01-05 -1.87040
364 2017-01-06 -0.17160
365 2017-01-07 0.94588
366 2017-01-08 1.49246
367 2017-01-09 0.02042
368 2017-01-10 0.75094
369
370 """
371
372 if isinstance(df, Series):
373 raise ValueError("func only applies to `pd.DataFrame`")
374 if start is None:
375 start = df.index[0]
376 if end is None:
377 end = df.index[-1]
378 subset = df.index[(df.index >= start) & (df.index <= end)]
379 return df.dropna(axis=1, subset=subset)

Related snippets