DataFrame для панд в .txt со строковыми значениями и значениями с плавающей точкой - PullRequest
0 голосов
/ 02 мая 2019

Используя Python, есть ли способ сохранить значения в панде DataFrame любого размера в файл .txt, когда DataFrame содержит столбцы строк, а также столбцы с плавающей точкой?

Соответствующие пакеты:

import numpy as np
import pandas as pd

Например, скажем, у вас был следующий фрейм данных:

          NAME    0    1    2    3    4
1   0000_00_01  1.0  1.0  1.0  1.0  1.0
2   0100_00_01  1.0  1.0  1.0  1.0  1.0
3  01100_11_11  1.0  1.0  1.0  1.0  1.0
0   1295_10_11  1.0  1.0  1.0  1.0  1.0

Столбец, помеченный 'NAME', является столбцом строк, тогда как другие столбцы являются числами с плавающей запятой:

DataFrame.values

array([['0000_00_01', 1.0, 1.0, 1.0, 1.0, 1.0],
       ['0100_00_01', 1.0, 1.0, 1.0, 1.0, 1.0],
       ['01100_11_11', 1.0, 1.0, 1.0, 1.0, 1.0],
       ['1295_10_11', 1.0, 1.0, 1.0, 1.0, 1.0]], dtype=object)

Если я пытаюсь сохранить значения в текстовом файле следующим образом:

np.savetxt(path+'test.txt',df.values,delimiter=' ')

Я получаю ошибку:

TypeError: Mismatch between array dtype ('object') and format specifier ('%.18e %.18e %.18e %.18e %.18e %.18e')

Есть ли способ вывода в .txt при сохранении структуры значений DataFrame (т.е., например, не выводить одну длинную строку значений)?

Ответы [ 2 ]

1 голос
/ 02 мая 2019
df.to_csv('test.txt', sep=' ')
0 голосов
/ 02 мая 2019
import pandas as pd

big_list = [
        ['0000_00_01', 1.0,  1.0,  1.0,  1.0,  1.0],
        ['0100_00_01', 1.0,  1.0,  1.0,  1.0,  1.0],
        ['01100_11_11', 1.0,  1.0,  1.0,  1.0,  1.0],
        ['1295_10_11', 1.0,  1.0,  1.0,  1.0,  1.0]
]

df = pd.DataFrame(big_list, columns = ['NAME', 0,1,2,3,4])

df.to_csv('test.txt', index = False, sep=',')

Используйте встроенный метод панд "to_csv", чтобы сохранить результаты в виде текстового файла.

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