簡體   English   中英

熊貓:如何打開某些文件

[英]Pandas: How to open certain files

我目前正在處理來自此鏈接的數據集。 但是我無法從熊貓讀取這些文件嗎? 有沒有人嘗試過播放此類文件?

我正在嘗試以下方法:

import pandas as pd

df = pd.read_csv("m_4549381c276b46c6.0000")

但我收到以下錯誤

Error tokenizing data. C error: Buffer overflow caught - possible malformed input file.

這些文件是保存的SFrame的一部分

因此,您可以通過以下方式加載它們:

import sframe

sf = sframe.SFrame('/path/to/dir/')

演示:我已經從people_wiki.gl下載了所有文件,並將它們放在以下目錄中: D:/download/sframe/

In [7]: import sframe

In [7]: sf = sframe.SFrame('D:/download/sframe/')

In [8]: sf
Out[8]:
Columns:
        URI     str
        name    str
        text    str

Rows: 59071

Data:
+-------------------------------+---------------------+
|              URI              |         name        |
+-------------------------------+---------------------+
| <http://dbpedia.org/resour... |    Digby Morrell    |
| <http://dbpedia.org/resour... |    Alfred J. Lewy   |
| <http://dbpedia.org/resour... |    Harpdog Brown    |
| <http://dbpedia.org/resour... | Franz Rottensteiner |
| <http://dbpedia.org/resour... |        G-Enka       |
| <http://dbpedia.org/resour... |    Sam Henderson    |
| <http://dbpedia.org/resour... |    Aaron LaCrate    |
| <http://dbpedia.org/resour... |   Trevor Ferguson   |
| <http://dbpedia.org/resour... |     Grant Nelson    |
| <http://dbpedia.org/resour... |     Cathy Caruth    |
+-------------------------------+---------------------+
+-------------------------------+
|              text             |
+-------------------------------+
| digby morrell born 10 octo... |
| alfred j lewy aka sandy le... |
| harpdog brown is a singer ... |
| franz rottensteiner born i... |
| henry krvits born 30 decem... |
| sam henderson born october... |
| aaron lacrate is an americ... |
| trevor ferguson aka john f... |
| grant nelson born 27 april... |
| cathy caruth born 1955 is ... |
+-------------------------------+
[59071 rows x 3 columns]
Note: Only the head of the SFrame is printed.
You can use print_rows(num_rows=m, num_columns=n) to print more rows and columns.

現在,您可以根據需要將其轉換為Pandas DF:

In [17]: df = sf.to_dataframe()

In [18]: pd.options.display.max_colwidth = 40

In [19]: df.head()
Out[19]:
                                       URI                 name                                     text
0  <http://dbpedia.org/resource/Digby_M...        Digby Morrell  digby morrell born 10 october 1979 i...
1  <http://dbpedia.org/resource/Alfred_...       Alfred J. Lewy  alfred j lewy aka sandy lewy graduat...
2  <http://dbpedia.org/resource/Harpdog...        Harpdog Brown  harpdog brown is a singer and harmon...
3  <http://dbpedia.org/resource/Franz_R...  Franz Rottensteiner  franz rottensteiner born in waidmann...
4     <http://dbpedia.org/resource/G-Enka>               G-Enka  henry krvits born 30 december 1974 i...

In [20]: df.shape
Out[20]: (59071, 3)

只是澄清了MaxU的答案,您試圖以錯誤的方式閱讀它。 它是一個原始文件,其格式包含在該鏈接的同一文件夾中的其他文件中。 熊貓要求您事先知道文件的編碼格式(即分隔符,列數等)。 在不知道任何文件的情況下,它不能用作魔術棒來讀取任何文件。

鏈接中文件夾外部的IPython筆記本確切顯示了如何讀取該數據。 MaxU正確地提到了所涉及的特定文件只是SFrame的一部分,而SFrame是GraphLab框架的結構。 因此,您試圖僅從整體的一部分中提取有意義的數據,因此您將無法做到這一點。

但是,您可以讀取graphlab文件並將其轉換為Pandas數據框。 有關詳細信息,請參見此處

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM