Как преобразовать байтовый тип данных в фрейм данных? - PullRequest
0 голосов
/ 29 мая 2020

Я загружаю набор данных elnino из репозитория UCI ML. Пожалуйста, обратитесь к прикрепленной ссылке для набора данных.

https://archive.ics.uci.edu/ml/machine-learning-databases/el_nino-mld/elnino.gz

Я использовал следующий код для распаковки файла .gz.

import gzip

with gzip.open('C:\\Users\\suel.abbasi\\Downloads\\tao-all2.dat.gz', 'r') as file:
    for line in file:
        print(line)

Результат для приведенного выше кода ниже

b'1 80 3 7 800307 -0.02 -109.46 -6.8 0.7 . 26.14 26.24\n'
b'2 80 3 8 800308 -0.02 -109.46 -4.9 1.1 . 25.66 25.97\n'
b'3 80 3 9 800309 -0.02 -109.46 -4.5 2.2 . 25.69 25.28\n'
b'4 80 3 10 800310 -0.02 -109.46 -3.8 1.9 . 25.57 24.31\n'
b'5 80 3 11 800311 -0.02 -109.46 -4.2 1.5 . 25.3 23.19\n'
b'6 80 3 12 800312 -0.02 -109.46 -4.4 0.3 . 24.72 23.64\n'
b'7 80 3 13 800313 -0.02 -109.46 -3.2 0.1 . 24.66 24.34\n'
b'8 80 3 14 800314 -0.02 -109.46 -3.1 0.6 . 25.17 24.14\n'
b'9 80 3 15 800315 -0.02 -109.46 -3 1 . 25.59 24.24\n'
b'10 80 3 16 800316 -0.02 -109.46 -1.2 1 . 26.71 25.94\n'
b'11 80 3 17 800317 -0.02 -109.46 -0.1 0.7 . 27.28 26.65\n'
b'12 80 3 18 800318 -0.02 -109.46 -1.2 2.3 . 26.86 27.13\n'
b'13 80 3 19 800319 -0.02 -109.46 -4.1 -0.3 . 26.38 26.35\n'
b'14 80 3 20 800320 -0.02 -109.46 -4.8 -0.8 . 26.19 25.87\n'
b'15 80 3 21 800321 -0.02 -109.46 -5.2 2 . 26.08 25.38\n'
b'16 80 3 22 800322 -0.02 -109.46 -2.7 2.7 . 26.24 .\n'
b'17 80 3 23 800323 -0.02 -109.46 -4.4 1.1 . 26.05 .\n'
b'18 80 3 24 800324 -0.02 -109.46 -4.3 0.7 . 25.67 .\n'
b'19 80 3 25 800325 -0.02 -109.46 -3.8 0.5 . 25.39 .\n'

Теперь я не могу понять, как преобразовать это в фрейм данных? Пожалуйста, помогите

1 Ответ

1 голос
/ 29 мая 2020

Pandas может читать заархивированные текстовые (csv) файлы с read_csv, просто укажите разделитель:

df = pd.read_csv('elnino.gz', sep='\s+', header=None)

Результат:

      0   1     2       3     4     5     6      7      8
0     1   1  8.96 -140.32  -6.3  -6.4  83.5  27.32  27.57
1     1   2  8.95 -140.32  -5.7  -3.6  86.4  26.70  27.62
2     1   3  8.96 -140.32  -6.2  -5.8  83.0  27.36  27.68
3     1   4  8.96 -140.34  -6.4  -5.3  82.2  27.32  27.70
4     1   5  8.96 -140.33  -4.9  -6.2  87.3  27.09  27.85
..   ..  ..   ...     ...   ...   ...   ...    ...    ...
777  59  10 -8.04  164.82     .     .  93.6  26.89  28.52
778  59  11 -8.04  164.82     .     .  92.3  27.62  28.44
779  59  12 -8.03  164.81     .     .  93.2  28.33  28.43
780  59  13 -8.04  164.82     .     .  95.5  28.44  28.51
781  59  14 -8.04  164.81     .     .  93.4  28.67  28.61

[782 rows x 9 columns]

PS: имена столбцов можно получить из elnino.col следующим образом:

df.columns = pd.read_csv('elnino.col', header=None).iloc[:,0].values
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...