2016-05-09 8 views
4

DataFrame内のすべての列を追加したいので、この合計をDataFrame内の新しい列として追加します。データフレーム内のすべての列を追加する

クエリの最初と最後の列に言及することなく、「すべて」の列を使用できます。

これは可能ですか?

+0

あなたは 'df ['sum'] = df.sum(axis = 1)'の後にいますか? – MaxU

答えて

2

使用sum

import pandas as pd 
import numpy as np 

#random dataframe 
np.random.seed(1) 
df1 = pd.DataFrame(np.random.randint(10, size=(3,5))) 
df1.columns = list('ABCDE') 
print df1 
    A B C D E 
0 5 8 9 5 0 
1 0 1 7 6 9 
2 2 4 5 2 4 

df1['sum'] = df1.sum(axis=1) 
print df1 
    A B C D E sum 
0 5 8 9 5 0 27 
1 0 1 7 6 9 23 
2 2 4 5 2 4 17 

新しい列を作成するための別の解決策がassignです:

print df1.assign(sum=df1.sum(axis=1)) 
    A B C D E sum 
0 5 8 9 5 0 27 
1 0 1 7 6 9 23 
2 2 4 5 2 4 17 
1

ソリューション

pd.concat([df, df.sum(axis=1)], axis=1) 
+0

優れた作品です。ただし、新しい列はヘッダー "0"または "O"で作成されています。私はヘッダーとして "合計"または "合計"を参照したいと思います。これは可能ですか?新しい列が既存のdf DataFrameに追加されましたか? – vsoler

1

あなたはこのようにそれを行うことができます。

df['sum'] = df.sum(axis=1) 
関連する問題