2017-08-18 10 views
2

このquestionは何度も尋ねられましたが、別のデータフレーム(df1df2の長さが同じです)から列をコピーすると、NaNという値が得られます。私は、あるDataFrameから別のDataFrameに列をコピーすると、NaN値が得られますか?

を以下のようにしようとした私の df2

 MyVar1 MyVar2  date  time 
0 6169.719338 3688.045368 2017-05-01 00:00:00 
1 5861.148007 3152.238704 2017-05-01 01:00:00 
2 5797.053347 2700.469871 2017-05-01 02:00:00 
3 5779.102340 2730.471948 2017-05-01 03:00:00 
4 6708.219647 3181.298291 2017-05-01 04:00:00 
5 8550.380343 3793.580394 2017-05-01 05:00:00 

に、このように必要

df1

 date  hour  var1 
0 2017-05-01 00:00:00 456585 
1 2017-05-01 01:00:00 899875 
2 2017-05-01 02:00:00 569566 
3 2017-05-01 03:00:00 458756 
4 2017-05-01 04:00:00 231458 
5 2017-05-01 05:00:00 986545 

df2

 MyVar1  MyVar2 
0 6169.719338 3688.045368 
1 5861.148007 3152.238704 
2 5797.053347 2700.469871 
3 5779.102340 2730.471948 
4 6708.219647 3181.298291 
5 8550.380343 3793.580394 

私は次のように取得しています

 MyVar1 MyVar2  date  time 
0 6169.719338 3688.045368 NaN  NaN 
1 5861.148007 3152.238704 NaN  NaN 
2 5797.053347 2700.469871 NaN  NaN 

ですが、なぜでしょうか? mergeについて議論する別のpostがありますが、コピーするだけです。どんな助けもありがとう。

答えて

2

あなたのデータフレームインデックスは同じではないと思います。インデックスを最初にリセットすることができます。

df1 = df1.reset_index(drop=True) 
df2 = df2.reset_index(drop=True) 

さて、あなたは割り当てることができます。

df2['date'] = df1['date'] 
df2['hour'] = df1['hour'] 

をあなたはまたpd.concatを使用することができます。

df = pd.concat([df2, df1[['date', 'hour']]], axis=1) 
print(df) 


     MyVar1  MyVar2  date  hour 
0 6169.719338 3688.045368 2017-05-01 00:00:00 
1 5861.148007 3152.238704 2017-05-01 01:00:00 
2 5797.053347 2700.469871 2017-05-01 02:00:00 
3 5779.102340 2730.471948 2017-05-01 03:00:00 
4 6708.219647 3181.298291 2017-05-01 04:00:00 
5 8550.380343 3793.580394 2017-05-01 05:00:00 
+0

@ i.n.n.mインデックスに問題がある可能性があります。 'ignore_index = True'を追加してみてください。それ以外の場合は、両方のインデックスを最初にリセットしてから連結してください。 –

+1

@ i.n.n.m 'df2 ['date'] = df1 ['date']。values' – Wen

+0

@COLDSPEED' reset_index'が働いています。 –

3

はこれを試してみてください?

df2['date'] = df1['date'].values 
df2['hour'] = df1['hour'].values 
+0

ありがとう、それも働いた! –

+0

ニースのソリューションはリセットを伴わない! –

+2

@cᴏʟᴅsᴘᴇᴇᴅあなたも良い解決策です〜+1 – Wen

関連する問題