Считайте 4 строки данных в один ряд фрейма данных панд - PullRequest
1 голос
/ 28 апреля 2019

У меня есть текстовый файл с такими значениями:

108,612,620,900
168,960,680,1248
312,264,768,564
516,1332,888,1596

Мне нужно прочитать все это в одной строке фрейма данных.

    0   1   2   3   4   5   6   7    8   9   10  11  12  13   14  15
0 108 612 620 900 168 960 680 1248 312 264 768 564 516 1332 888 1596

У меня много таких файлов, поэтому я буду добавлять строки в этот фрейм данных.

Я считаю, что нам нужно какое-то регулярное выражение, но я не могу понять это. На данный момент это то, что у меня есть:

df = pd.read_csv(f,sep=",| ", header = None)

Но это принимает , и (пробел) в качестве разделителей, где, как я хочу, чтобы взять новую строку в качестве разделителя.

1 Ответ

3 голосов
/ 28 апреля 2019

Сначала прочитайте данные:

df = pd.read_csv('test/t.txt', header=None)

Это дает вам DataFrame в форме CSV. Затем объединить:

s = pd.concat((df.loc[i] for i in df.index), ignore_index=True)

Это дает вам серию:

0      108
1      612
2      620
3      900
4      168
5      960
6      680
7     1248
8      312
9      264
10     768
11     564
12     516
13    1332
14     888
15    1596
dtype: int64

Наконец, если вам действительно нужен горизонтальный фрейм данных:

pd.DataFrame([s])

Дает вам:

    0    1    2    3    4    5    6     7    8    9    10   11   12    13   14    15
0  108  612  620  900  168  960  680  1248  312  264  768  564  516  1332  888  1596

Поскольку вы упомянули в комментарии, что у вас много таких файлов, вы должны просто сохранить все серии в списке и создать DataFrame со всеми из них сразу, когда закончите загружать их все.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...