2017-09-10 7 views
0

私はPythonにはとても新しいので、基本的な質問です。新しい列を追加して(計算した)データを1行に挿入するにはどうすればよいですか?

私はcsvファイルからインポートしたデータを持っています。各行は人とそのデータを反映しています。 2つの属性はSexとPclassです。私は、これらの2つに完全に依存する新しい列(予測)を1行に追加したいと考えています。両方の属性の値が1の場合、人の予測データフィールドに1を、そうでなければ0を割り当てる必要があります。

私は1行でどのように行うのですか(パンダと言うとします)?

答えて

1

使用:

np.random.seed(12) 
df = pd.DataFrame(np.random.randint(3,size=(10,2)), columns=['Sex','Pclass']) 

df['prediction'] = ((df['Sex'] == 1) & (df['Pclass'] == 1)).astype(int) 
print (df) 
    Sex Pclass prediction 
0 2  1   0 
1 1  2   0 
2 0  0   0 
3 2  1   0 
4 0  1   0 
5 1  1   1 
6 2  2   0 
7 2  0   0 
8 1  0   0 
9 0  1   0 

すべての値は、1であり、0のみJohn Galt溶液を使用する場合:

#only 0, 1 values 
df['predictions'] = df.all(axis=1).astype(int) 

#if more possible values 
df['predictions'] = df.eq(1).all(axis=1).astype(int) 
print (df) 
    Sex Pclass predictions 
0 2  1   0 
1 1  2   0 
2 0  0   0 
3 2  1   0 
4 0  1   0 
5 1  1   1 
6 2  2   0 
7 2  0   0 
8 1  0   0 
9 0  1   0 
1

IIUC:

df['predictions'] = (df['Sex'] & df['Pclass']).astype(int) 

又は@JohnGaltによって提案として:

df['predictions'] = df.all(axis=1).astype(int) 

デモ:

In [68]: df['predictions'] = (df['Sex'] & df['Pclass']).astype(int) 

In [69]: df 
Out[69]: 
    Sex Pclass predictions 
0 1  1   1 
1 1  0   0 
2 0  1   0 
3 0  0   0 
+1

'df.all(1).astype(INT)'または '' df.eq(1).ALL(1).astype(INTを) "おそらく? – Zero

+0

@JohnGalt、ありがとうございます!あなたのバージョンを答えに加えました... – MaxU

関連する問題