2015-04-08 22 views
52

Tôi có một khung dữ liệu hiện có mà tôi cần thêm cột bổ sung sẽ chứa cùng một giá trị cho mỗi hàng.Thêm cột vào dataframe với giá trị mặc định

df hiện:

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

New df:

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

Tôi biết làm thế nào để thêm một cột loạt/dataframe hiện có. Nhưng đây là một tình huống khác, bởi vì tất cả những gì tôi cần là thêm cột 'Tên' và đặt mọi hàng thành cùng một giá trị, trong trường hợp này là 'abc'.

Tôi không hoàn toàn chắc chắn cách thực hiện điều đó.

Trả lời

77

df['Name']='abc' sẽ thêm cột mới và thiết lập tất cả các hàng để giá trị đó:

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

Có cách nào khác để thực hiện việc này không? Tôi nhận được cảnh báo sau. Giá trị đang cố gắng được đặt trên bản sao của một lát từ DataFrame. Hãy thử sử dụng .loc [row_indexer, col_indexer] = value thay thế. Xem các lưu ý trong tài liệu: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy –

+0

Điều đó có nghĩa là bạn đang chỉ định cho nội dung nào đó là bản sao chứ không phải df ban đầu, tôi không thể nhận xét thêm mà không thấy dữ liệu và mã của bạn dưới dạng câu hỏi. Trả lời câu hỏi trong nhận xét là phản tác dụng. Mã này hoạt động, bạn đã làm điều gì đó trước điều này để nâng cao cảnh báo – EdChum

+0

@vishnuviswanath Tôi nhận được cảnh báo tương tự như khi bạn sử dụng Jupyter Notebook. Nó xảy ra với tôi khi tôi có kích thước DataFrame không tầm thường (> 200 bản ghi) và một số kết hợp nhất định và chỉ cần in ra df. – Bill

17

Độc lót làm việc

df['Name'] = 'abc' 

Tạo một cột Name và đặt tất cả các hàng để giá trị abc

11

Bạn có thể sử dụng insert để chỉ định vị trí bạn muốn cột mới. Trong trường hợp này, tôi sử dụng 0 để đặt cột mới ở bên trái.

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

    Name  Date Open High Low Close 
0 abc 01-01-2015 565 600 400 450 
Các vấn đề liên quan