Как получить формат DataFrame из строки формата CSV в Python - PullRequest
0 голосов
/ 01 мая 2018

Допустим, у меня есть строка формата csv a = '1,2,3 \ r4,5,6 \ r7,8,9 \ r' в python. Как я могу получить «3 строки x 3 столбца» DataFrame [[1,2,3], [4,5,6], [7,8,9]] из переменной a?

Спасибо.

Ответы [ 3 ]

0 голосов
/ 01 мая 2018

Вы можете использовать модуль io для создания текстового потока в памяти из строки. Предположим, у вас есть строка в формате CSV:

In [1]: import io

In [2]: import pandas as pd

In [3]: s = '1,2,3\n4,5,6\n7,8,9'

In [4]: print(s)
1,2,3
4,5,6
7,8,9

Использование io.StringIO, как если бы вы были файловым объектом:

In [5]: pd.read_csv(io.StringIO(s))
Out[5]:
   1  2  3
0  4  5  6
1  7  8  9

In [6]: pd.read_csv(io.StringIO(s), header=None)
Out[6]:
   0  1  2
0  1  2  3
1  4  5  6
2  7  8  9
0 голосов
/ 01 мая 2018

Альтернативой может быть такая:

Введите:

a='1,2,3\n4,5,6\n7,8,9'
print a

1,2,3
4,5,6
7,8,9

Преобразование в список и затем df:

import re
import pandas as pd
my_list = re.split("[,\n]", a)
df = pd.DataFrame(np.array(my_list).reshape(3,3), columns = list("abc"))
print df

Выход:

   a  b  c
0  1  2  3
1  4  5  6
2  7  8  9
0 голосов
/ 01 мая 2018

Попробуйте это:

temp = [i.split(',') for i in a.split('/r')]
result = [list(map(int, i)) for i in temp[:-1]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...