2016-12-21 7 views
1

私はdfimpという名前のデータフレーム持っている:私のnoobの意見では、その3つの列をパンダのデータフレームの最初の列は列ではありませんか?

>>dfimp 
      Column1 Column2 
vo_11       
102  0.023002   0 
301  3571.662104   0 
302  1346.910261   0 
... 

を?しかし:

>>dfimp.dtypes 
Column1  float64 
Column2  float64 
dtype: object 

その2つの列はありますか?最初のものは何ですか(vo_11)?私はマージのためにそれを使用したいが、私はエラーが表示されない場合は、vo_11という名前の列がないと言う。

+1

をそれをインデックスと呼ばれています。 'dfimp.reset_index(inplace = True)'を呼び出すことで、新しいカラムを割り当てることができます(したがって、新しい単調インデックスを作成することができます)。古いインデックスを失い、新しい単調インデックスを取得したい場合は、 'drop = True 'をリセットインデックス関数に渡します。 –

答えて

4

それによって、それをチェックし、indexと呼ばれている。また、チェック

print (df.index) 
Int64Index([102, 301, 302], dtype='int64', name='vo_11') 

docs

パンダオブジェクト内の軸ラベルの情報があります、多くの目的:

表しますデータ(つまり、解析、ビジュアライゼーション、対話型コンソール表示に重要な既知のインジケータを使用して)
-Ena BLES自動と明示的なデータ・アラインメント
許可しますが取得し、必要性の両方DataFramesのインデックスによってmerge場合は、データのサブセットの設定が

を設定し、直感的な:

df = pd.merge(df1, df2, left_index=True, right_index=True) 

またはconcatを使用します。

df = pd.concat([df1, df2], axis=1) 

通知:

マッチングのために10

は、同じタイプのインデックスを必要 - int又はobject両方(明らかstring

サンプル:

df1 = pd.DataFrame({ 
'Column1': {302: 10, 301: 21, 102: 2}, 
'Column2': {302: 0, 301: 0, 102: 0}}) 
print (df1) 
    Column1 Column2 
102  2  0 
301  21  0 
302  10  0 

df2 = pd.DataFrame({ 
'Column1': {302: 4, 301: 5, 304: 6}, 
'Column2': {302: 0, 301: 0, 304: 0}}) 
print (df2) 
    Column1 Column2 
301  5  0 
302  4  0 
304  6  0 

df = pd.merge(df1, df2, left_index=True, right_index=True) 
print (df) 
    Column1_x Column2_x Column1_y Column2_y 
301   21   0   5   0 
302   10   0   4   0 

df = pd.merge(df1, df2, left_index=True, right_index=True, how='outer') 
print (df) 
    Column1_x Column2_x Column1_y Column2_y 
102  2.0  0.0  NaN  NaN 
301  21.0  0.0  5.0  0.0 
302  10.0  0.0  4.0  0.0 
304  NaN  NaN  6.0  0.0 

df = pd.concat([df1, df2], axis=1) 
print (df) 
    Column1 Column2 Column1 Column2 
102  2.0  0.0  NaN  NaN 
301  21.0  0.0  5.0  0.0 
302  10.0  0.0  4.0  0.0 
304  NaN  NaN  6.0  0.0 

df = pd.concat([df1, df2], axis=1, join='inner') 
print (df) 
    Column1 Column2 Column1 Column2 
301  21  0  5  0 
302  10  0  4  0 
関連する問題