2015-07-18 25 views
24

Tôi có một DataFrame nhỏ mà tôi muốn vẽ bằng cách sử dụng gấu trúc.pandas DataFrame "không có dữ liệu số để vẽ" lỗi

2 3 
0 1300 1000 
1 242751149 199446827 
2 237712649 194704827 
3 16.2 23.0 

Tôi vẫn đang cố gắng tìm hiểu âm mưu từ trong gấu trúc. Tôi muốn một âm mưu Trong ví dụ trên khi tôi nói.

df.plot() 

Tôi gặp lỗi lạ nhất.

Library/Python/2.7/site-packages/pandas-0.16.2-py2.7-macosx-10.10-intel.egg/pandas/tools/plotting.pyc in _compute_plot_data(self) 
    1015   if is_empty: 
    1016    raise TypeError('Empty {0!r}: no numeric data to ' 
-> 1017        'plot'.format(numeric_data.__class__.__name__)) 
    1018 
    1019   self.data = numeric_data 

TypeError: Empty 'DataFrame': no numeric data to plot 

Mặc dù tôi hiểu rằng DataFrame có giá trị rất thấp khiến một âm mưu rất thú vị. Tôi tự hỏi tại sao thông báo lỗi phàn nàn không có dữ liệu số để vẽ.

+1

dữ liệu gì làm bạn thấy nếu bạn chạy 'df.dtypes'? – chrisb

+1

DataFrame của bạn có thể chứa chuỗi số. Có vẻ như các cột đã được phân tích cú pháp chính xác - bạn có thể chỉ có một cột được gọi là '' 2 3''. Để giúp bạn khắc phục điều này, chúng tôi có thể cần xem cách 'df' được xác định. – unutbu

+0

Ngoài ra, có vẻ như bạn có thể có dữ liệu định hướng hàng và gấu trúc sẽ mong đợi theo định hướng cột, bạn có thể muốn chuyển vị trí. – JohnE

Trả lời

47

Hãy thử những điều sau trước khi âm mưu:

loại
df=df.astype(float) 
+0

Tôi muốn một lời giải thích được cung cấp cho các giải pháp như thế này. Nếu ai đó nói về nhận xét của tôi và hiểu câu trả lời này đầy đủ, vui lòng cung cấp giải thích. –

+3

@GregHilston có rất nhiều ma thuật đằng sau gấu trúc ví dụ khi bạn sử dụng pandas.read_csv để đọc một tệp. Đặc biệt nó phải suy ra kiểu dữ liệu. Đôi khi nó làm cho nó sai. Câu trả lời của tôi ở trên buộc các con gấu trúc phải thử và chuyển đổi dữ liệu thành các số dấu phẩy động. – alex314159

+0

Tạo cảm giác hoàn hảo với tôi, cảm ơn vì đã theo dõi> 2 năm sau! –