2015-04-08 26 views
52

Her satır için aynı değeri içerecek ek bir sütun eklemem gereken mevcut bir veri çerçevem ​​var.Varsayılan değerle veri çerçevesine sütun ekle

Mevcut df:

Date, Open, High, Low, Close 
01-01-2015, 565, 600, 400, 450 

Yeni df:

Name, Date, Open, High, Low, Close 
abc, 01-01-2015, 565, 600, 400, 450 

Ben mevcut bir seri/dataframe sütununu eklemek için biliyorum. Ama bu farklı bir durum çünkü ihtiyacım olan tek şey 'İsim' sütununu eklemek ve her satırı aynı değere getirmek, bu durumda 'abc'.

Bunu nasıl yapacağınızdan tamamen emin değilim.

cevap

77

df['Name']='abc' bu değere tüm satırları yeni bir sütun eklemek ve ayarlayacaktır:

In [79]: 

df 
Out[79]: 
     Date, Open, High, Low, Close 
0 01-01-2015, 565, 600, 400, 450 
In [80]: 

df['Name'] = 'abc' 
df 
Out[80]: 
     Date, Open, High, Low, Close Name 
0 01-01-2015, 565, 600, 400, 450 abc 
+5

Bunu yapmak için başka bir yolu var mı? Uyarı alıyorum. DataFrame'den bir dilimin kopyasında bir değer ayarlanmaya çalışılıyor. .loc [row_indexer, col_indexer] = yerine kullanmayı deneyin. Dokümantasyondaki uyarılara bakın: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy –

+0

Bu, bir kopya olan ve olmayan bir şeye atadığınız anlamına gelir Orijinal df, veri ve kodunuzu bir soru şeklinde görmeden daha fazla yorum yapamam. Yorumlarda soruları cevaplamak karşı üretkendir. Bu kod çalışıyor, bu uyarıyı yükseltmek için bundan önce bir şey yaptınız – EdChum

+0

@vishnuviswanath Jupyter Defter kullanırken kullandığınız uyarıyı aynen aldım. Önemsiz DataFrame boyutlarına (> 200 kayıt) ve belirli ödev kombinasyonlarına sahip olduğumda ve df'yi basitçe yazdırdığımda bana geliyor. – Bill

17

Tek astar abc değere tüm satırları

df['Name'] = 'abc' 

bir Name sütun oluşturur çalışır ve ayarlar

11

Yeni sütunun nerede olmasını istediğinizi belirtmek için insert'u kullanabilirsiniz. Bu durumda, yeni sütunu sola yerleştirmek için 0 kullanıyorum.

df.insert(0, 'Name', 'abc') 

    Name  Date Open High Low Close 
0 abc 01-01-2015 565 600 400 450 
İlgili konular