2013-06-10 20 views
5

Tôi có, nói, một bảng dữ liệu 100 hàng theo cột 25 không có tiêu đề cột. Tôi có một danh sách 25 mục mà tôi muốn chỉ định làm tiêu đề cột cho bảng dữ liệu (chúng đã đúng thứ tự). Tôi không biết làm thế nào để làm điều này một cách hiệu quả bằng cách sử dụng gấu trúc. Bất kỳ đề xuất nào cũng sẽ rất tuyệt!Chỉ định tên cột từ một danh sách vào một bảng

Cảm ơn.

Trả lời

14

Bạn chỉ có thể gán trực tiếp thuộc tính columns.

>>> import pandas 
>>> # create three rows of [0, 1, 2] 
>>> df = pandas.DataFrame([range(3), range(3), range(3)]) 
>>> print df 
    0 1 2 
0 0 1 2 
1 0 1 2 
2 0 1 2 
>>> my_columns = ["a", "b", "c"] 
>>> df.columns = my_columns 
>>> print df 
    a b c 
0 0 1 2 
1 0 1 2 
2 0 1 2 

Bạn cũng có thể gán cho chỉ số để đạt được một cái gì đó tương tự

>>> df.index = ["row1", "row2", "row3"] 
>>> print df 
     a b c 
row1 0 1 2 
row2 0 1 2 
row3 0 1 2 
+0

Nhận xét về số- đầu tiên định dạng phần: cho my_columns tôi có thể chỉ cần thay thế rằng với tập tin list.txt của tôi hơn là loại ra các tên cột riêng lẻ? – Matt

+0

làm thế nào để bạn tải list.txt của bạn? – waitingkuo

+0

bạn có thể chuyển bất kỳ danh sách nào. Tôi vừa tạo một danh sách giả cho mục đích của ví dụ. ví dụ: nếu bạn sử dụng mô-đun 'csv' để tạo danh sách, nó sẽ hoạt động ở đây. –

3

Có một cuộc tranh luận tên cho read_csv:

names: mảng giống như
            Danh sách tên cột để sử dụng. Nếu tập tin không chứa dòng tiêu đề, sau đó bạn
            nên rõ ràng vượt qua header=None

Đó là, bạn muốn làm một cái gì đó như:

df = pd.read_csv(fie_name, header=None, names=col_headers_list) 
+0

Có lẽ tôi đã quá lâu và tôi cần ngủ nhưng điều này không rõ ràng đối với tôi. Bạn có thể làm rõ thêm một chút được không? – Matt

+1

Nếu bạn đã có DataFrame sử dụng câu trả lời @ Jeff, nếu không thì bạn có thể tạo tên cột trong khi đọc từ csv trực tiếp đến một DataFrame. –

Các vấn đề liên quan