私入力データフレーム(短縮)を条件(サンプル機能)を操作するには、次のようになります。特定の列に/ numpyのデータフレームをパンダを使用して別の列のエントリ(特徴量)
>>> import numpy as np
>>> import pandas as pd
>>> df_in = pd.DataFrame([[1, 2, 'a', 3, 4], [6, 7, 'b', 8, 9]],
... columns=(['c1', 'c2', 'col', 'c3', 'c4']))
>>> df_in
c1 c2 col c3 c4
0 1 2 a 3 4
1 6 7 b 8 9
それがになっています操作され、すなわち
(機能)列「COL」の行(サンプル)が特定の値(ここでは例えば、「B」)を有する場合、 次に列「C1」および「C2」でのエントリを変換同じ行からNまでumPy.NaNs。
結果が欲しかった:
>>> df_out = pd.DataFrame([[1, 2, 'a', 3, 4], [np.nan, np.nan, np.nan, 8, 9]],
columns=(['c1', 'c2', 'col', 'c3', 'c4']))
>>> df_out
c1 c2 col c3 c4
0 1 2 a 3 4
1 NaN NaN b 8 9
をこれまでのところ、私は私が何を私取得してもコード
>>> dic = {'col' : ['c1', 'c2']} # auxiliary
>>> b_w = df_in[df_in['col'] == 'b'] # Subset with 'b' in 'col'
>>> b_w = b_w.drop(dic['col'], axis=1) # ...inject np.nan in 'c1', 'c2'
>>> b_wo = df_in[df_in['col'] != 'b'] # Subset without 'b' in 'col'
>>> df_out = pd.concat([b_w, b_wo]) # Both Subsets together again
>>> df_out
c1 c2 c3 c4 col
1 NaN NaN 8 9 b
0 1.0 2.0 3 4 a
経由所望の結果を得る得ることができました欲しいジーナルデータは完全に浮動小数点で構成されていますが、 はintから突然変異を邪魔しないようにしています)、むしろ面白味のない コードスニペットです。そして私の推測では、pandasとnumpyの組み込み関数を使って、これをより速く実行できるということです。しかし、これを管理することはできません。
でこれをコード化する方法を提案します。速くて効率的です毎日の使用方法ですか?どんな助けも高く評価されます。 :)