2016-03-24 36 views
6

Cố gắng đọc csv file vào gấu trúc dataframe như sau định dạngThiết loại cột khi đọc csv với gấu trúc

dp = pd.read_csv('products.csv', header = 0, dtype = {'name': str,'review': str, 
                 'rating': int,'word_count': dict}, engine = 'c') 
print dp.shape 
for col in dp.columns: 
    print 'column', col,':', type(col[0]) 
print type(dp['rating'][0]) 
dp.head(3) 

Đây là kết quả:

(183531, 4) 
column name : <type 'str'> 
column review : <type 'str'> 
column rating : <type 'str'> 
column word_count : <type 'str'> 
<type 'numpy.int64'> 

enter image description here

Tôi có thể hiểu rằng gấu trúc có thể gặp khó khăn khi chuyển đổi biểu diễn chuỗi từ điển thành từ điển được cho thisthis. Nhưng làm cách nào để nội dung của cột "xếp hạng" có thể là cả str và numpy.int64 ???

Nhân tiện, các chỉnh sửa như không chỉ định động cơ hoặc tiêu đề sẽ không thay đổi bất kỳ thứ gì.

Trân trọng cảm ơn

Trả lời

1

Chỉ cần làm:

for col in dp.columns: 
    print 'column', col,':', col[0] 

Và bạn sẽ thấy bạn in các chữ cái đầu tiên của mỗi tên cột, mà là một chuỗi. Hãy coi chừng bạn lặp lại ở đây trên tên của cột, không phải trên mỗi Dòng.

Những gì bạn muốn là để kiểm tra kiểu của mỗi cột thông qua một vòng lặp để thay làm:

for col in dp.columns: 
    print 'column', col,':', type(dp[col][0]) 

... như bạn đã làm cho giá cột !!

+0

Cảm ơn, đó là một phần trượt trên phần của tôi :) Tôi chọn đây là câu trả lời được chấp nhận vì đó là câu trả lời trực tiếp cho câu hỏi của tôi. – user2738815

+0

Tôi đoán đó là lỗi đánh máy, đôi khi khó phát hiện khi tập trung vào mã;) –

1

Tôi nghĩ bạn nên kiểm tra cái này đầu tiên: Pandas: change data type of columns

khi google pandas dataframe column type, đó là trên 5 câu trả lời trên.

+0

Cảm ơn bạn, điều đó rất hữu ích. Tôi cũng muốn có một cuộc thảo luận về cách ép buộc chuyển đổi thành loại dict, cũng như (nếu có). – user2738815

1

Sử dụng:

dp.info() 

để xem kiểu dữ liệu của các cột. dp.columns đề cập đến tên tiêu đề cột, là các chuỗi.

+0

Một phím tắt khác mà tôi đã bỏ lỡ trong tài liệu gấu trúc rất dày đặc - cảm ơn bạn. – user2738815

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