Создание конкретного списка в кадре данных - PullRequest
0 голосов
/ 01 июня 2018

У меня проблемы с преобразованием списка в массив данных.

dataInList =

 ["'2018-05-15 15:35:57\t\n', 'A', 'xtre','retle ",' 105.0 (C)\n'],
 ["'2018-05-15 15:35:57\t\n', 'A', 'xtre','retla ",' 0 (s*C)\n'],
 ["'2018-05-15 15:35:57\t\n', 'A', 'xtre','retla",' 0 (s*C)\n'],
 ["'2018-05-15 15:35:57\t\n', 'A', 'xtre','retke",' 0 (s)\n'],
 ["'2018-05-15 15:35:57\t\n', 'A', 'xtre','retds",' 0 (s)\n'],
 ["'2018-05-15 15:35:57\t\n', 'A', 'xtre','rewr",' 0 (s)\n'],
 ["'2018-05-15 15:35:57\t\n', 'A', 'xtre','sdff",' 0 (s)\n']

df = pd. DataFrame (dataInList) распознает только две точки выборки как столбцы, создающие это:

                                                   0             1
1  '2018-05-15 15:35:57\t\n', 'A', 'xtre','..............'   101.5 (C)\n
2  '2018-05-15 15:35:57\t\n', 'A', 'xtre','..............'   105.0 (C)\n
3  '2018-05-15 15:35:57\t\n', 'A', 'xtre','..............'   118.0 (C)\n
4  '2018-05-15 15:35:57\t\n', 'A', 'xtre','..............'   110.0 (C)\n
5  '2018-05-15 15:35:57\t\n', 'A', 'xtre','..............'   110.0 (C)\n

Как мне действовать?

Заранее спасибо!

1 Ответ

0 голосов
/ 01 июня 2018

Используйте list понимание с split первыми значениями списков, а затем добавьте strip для удаления конечных пробелов:

df = pd.DataFrame([[y.strip() for y in x[0].split(',') + [x[1]]] for x in dataInList])
print (df)
                           0    1       2       3          4
0  '2018-05-15 15:35:57\t\n'  'A'  'xtre'  'retle  105.0 (C)
1  '2018-05-15 15:35:57\t\n'  'A'  'xtre'  'retla    0 (s*C)
2  '2018-05-15 15:35:57\t\n'  'A'  'xtre'  'retla    0 (s*C)

РЕДАКТИРОВАТЬ:

Проблема в том, что есть какой-то списокбез длины 2, поэтому нужно отфильтровать его:

dataInList = [["'2018-05-15 15:35:57\t\n', 'A', 'xtre','retle ",' 105.0 (C)\n'],
 ["'2018-05-15 15:35:57\t\n', 'A', 'xtre','retla ",' 0 (s*C)\n'],
 ["'2018-05-15 15:35:57\t\n', 'A', 'xtre','retla",' 0 (s*C)\n'],
 [ "aaa"]]

df = pd.DataFrame([[y.strip() for y in x[0].split(',') + [x[1]]] for x in dataInList if len(x) == 2])
print (df)
                           0    1       2       3          4
0  '2018-05-15 15:35:57\t\n'  'A'  'xtre'  'retle  105.0 (C)
1  '2018-05-15 15:35:57\t\n'  'A'  'xtre'  'retla    0 (s*C)
2  '2018-05-15 15:35:57\t\n'  'A'  'xtre'  'retla    0 (s*C)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...