2015-02-13 25 views
5

Tôi có một loạt gấu trúcgán tên cột để một loạt gấu trúc

object x 
Ezh2 2 
Hmgb 7 
Irf1 1 

Tôi muốn lưu này như một dataframe với tên cột Gene và Đếm tương ứng tôi đã cố gắng

x_df = pd.DataFrame(x,columns = ['Gene','count']) 

nhưng nó không hoạt động. Biểu mẫu cuối cùng tôi muốn là

Gene Count 
Ezh2 2 
Hmgb 7 
Irf1 1 

Bạn có thể đề xuất cách thực hiện điều này

+0

Bạn có thể hiển thị những gì df dự kiến ​​sẽ giống như thế, một loạt là một mảng 1-d cơ bản nhưng bạn cố gắng tạo một df với 2 cột – EdChum

+0

Bạn có muốn sử dụng chỉ mục làm cột gen của bạn và các giá trị là số không? – EdChum

+0

Có, tôi có thể thay đổi chỉ mục sau – Ssank

Trả lời

11

Bạn có thể tạo một dict và chuyển thông tin này như các param dữ liệu để các nhà xây dựng dataframe:

In [235]: 

df = pd.DataFrame({'Gene':s.index, 'count':s.values}) 
df 
Out[235]: 
    Gene count 
0 Ezh2  2 
1 Hmgb  7 
2 Irf1  1 

Hoặc bạn có thể tạo ra một df từ loạt bài, bạn cần phải gọi reset_index như chỉ số sẽ được sử dụng và sau đó đổi tên các cột:

In [237]: 

df = pd.DataFrame(s).reset_index() 
df.columns = ['Gene', 'count'] 
df 
Out[237]: 
    Gene count 
0 Ezh2  2 
1 Hmgb  7 
2 Irf1  1 
6

Bạn cũng có thể sử dụng phương pháp .to_frame().

Nếu đó là một Series, tôi giả sử 'Gene' đã là chỉ mục và sẽ vẫn là chỉ mục sau khi chuyển đổi thành DataFrame. Đối số name của .to_frame() sẽ đặt tên cho cột.

x = x.to_frame('count') 

Nếu bạn muốn cả hai như cột, bạn có thể thiết lập lại các chỉ số:

x = x.to_frame('count').reset_index() 
Các vấn đề liên quan