DataFrame to String - PullRequest
       15

DataFrame to String

1 голос
/ 05 мая 2019
import sys
if sys.version_info[0] < 3: 
    from StringIO import StringIO
else:
    from io import StringIO
import pandas as pd
TESTDATA = StringIO(txt)
df = pd.read_csv(TESTDATA,names=['col1'])

, где

txt="The lion (Panthera leo) is a species in the family Felidae;it is a muscular, deep-chested cat with a short, rounded head, a reduced neck and round ears, and a hairy tuft at the end of its tail. The lion is sexually dimorphic; males are larger than females with a typical weight range of 150 to 250 kg (330 to 550 lb) for males and 120 to 182 kg (265 to 400 lb) for females. "

Когда я запускаю приведенный выше код, я получаю вывод в виде:

The lion (Panthera leo) is a species in the family Felidae;it is a muscular deep-chested cat with a short   rounded head    a reduced neck and round ears   and a hairy tuft at the end of its tail

Я получаю 4 разных столбца, последний из которых помечен как col1. Но то, что я хочу, это один столбец с полными данными. Как этого добиться? Я хочу преобразовать данные txt в фрейм данных с одним столбцом.

Ответы [ 2 ]

1 голос
/ 05 мая 2019

Когда вы читаете данные, используя pd.read_csv, разделитель по умолчанию - запятая ,, вам нужно явно передать sep=';' в pd.read_csv(TESTDATA, sep=';'), если вы хотите разделить их по разным разделителям или использовать разделитель, который являетсяотсутствует в файле, чтобы игнорировать все разделители, такие как sep='###'

0 голосов
/ 05 мая 2019

Но я хочу один столбец с полными данными.Как этого добиться?Я хочу преобразовать данные txt в фрейм данных с одним столбцом.

from io import StringIO
import pandas as pd    
txt="The lion (Panthera leo) is a species in the family Felidae;it is a muscular, deep-chested cat with a short, rounded head, a reduced neck and round ears, and a hairy tuft at the end of its tail. The lion is sexually dimorphic; males are larger than females with a typical weight range of 150 to 250 kg (330 to 550 lb) for males and 120 to 182 kg (265 to 400 lb) for females. "


memory_file=StringIO(txt)
df =pd.read_csv(memory_file, sep=r'\n', header=None, engine='python', names=["cname"])
print(df)
print(df.size)
...