8

int で満たされた現在のデータ セットを取得し、特定の基準に従って分類できるようにしたいと考えています。テーブルは次のようになります。

[in]> df = pd.DataFrame({'A':[0,2,3,2,0,0],'B': [1,0,2,0,0,0],'C': [0,0,1,0,1,0]})
[out]>
   A  B  C
0  0  1  0
1  2  0  0
2  3  2  1
3  2  0  0
4  0  0  1
5  0  0  0

これらを文字列ごとに別の列に分類したいと思います。R に慣れてきたので、その列の定義のルールを使用して新しい列を作成しようとしました。その後、私は .ix と lambdas を試しましたが、どちらも型エラーが発生しました ( ints と series の間)。これはかなり単純な質問だという印象を受けました。以下は完全に間違っていますが、試行 1 のロジックは次のとおりです。

df['D']=(
if ((df['A'] > 0) & (df['B'] == 0) & df['C']==0): 
    return "c1";
elif ((df['A'] == 0) & ((df['B'] > 0) | df['C'] >0)): 
    return "c2";
else:
    return "c3";)

最終結果:

   A  B  C     D
0  0  1  0  "c2"
1  2  0  0  "c1"
2  3  2  1  "c3"
3  2  0  0  "c1"
4  0  0  1  "c2"
5  0  0  0  "c3"

誰かがこれを理解するのを手伝ってくれるなら、それは大歓迎です。

4

1 に答える 1