私の質問は以下のコードを簡素化する方法です。私の実際のデータでは、540列を追加する必要がありますが、特に列を生成するためのより良い方法があると思います。たぶん別のデータフレームですか?あなた以下関数を使用して新しい列またはデータフレームを作成しますか?
は、必要に応じて1列に私が持っているテスト-DFが表示されます。生成される「bin_X_9のニーズによる「bin_X_0」が、その後いくつかの、すなわちbin_Y_0、bin_Z_0など9
N = 10000
J = [2012,2013,2014]
K = ['A','B','C','D','E','F','G','H']
L = ['h', 'd', 'a']
S = ['AR1','PO1','RU1']
np.random.seed(0)
df = pd.DataFrame(
{'Y':np.random.uniform(1,10,N),
'X':np.random.uniform(1,10,N),
'Z':np.random.uniform(1,10,N),
'J':np.random.choice(J,N),
'S':np.random.choice(S,N),
'R':np.random.choice(L,N)
})
df['bins_X'] = df.groupby('S').X.apply(pd.qcut, q=10, labels=np.arange(10))
df['bin_X_0'] = np.where((df['bins_X'] ==0) & (df['R'] =='a'), (df['X']*2)-2,
np.where((df['bins_X'] ==0) & (df['R'] !='a'), -2, 0))
df.head()
おかげマルジャンは、よさそうです。私が確認しておきます、チェックします。私は言及するのを忘れていたが、一つのこと。後....フォーマット(a)] ==それは対応するビンでなければなりません。それが0である例では、あなたが示唆したように5 – Zanshin
私はnum' '2つのゼロを置き換え....すなわちbin_X_5でなければなりません。さもなければ、私は計算だけを掘り下げたわけではないので、変数は変わらないかもしれません。パターンを見たら私の答えを編集してください。 –
うん、これは動作します。ありがとう – Zanshin