Кадр данных Pandas искажается при записи в csvPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Кадр данных Pandas искажается при записи в csv

Сообщение Anonymous »

Я написал конвейер для отправки запросов в uniprot, но у меня возникла странная проблема с одним из запросов. Я поместил это в небольшой тестовый пример ниже.
Я получаю ожидаемый кадр данных (df) (одна строка и 15 столбцов, по одному на поле), но когда я экспортирую ее в CSV и открываю в Excel, она выглядит искаженной. В частности, вместо одной строки я получаю две, причем вторая начинается в середине столбца кадра данных «Последовательность» (более подробную информацию я дал в нижнем комментарии). Это по одному из 99 запросов, а с остальными все было нормально. Я подозреваю, что это проблема в моем вызове pd.to_csv, но если бы кто-нибудь мог предоставить более подробную информацию, я был бы очень признателен.
Спасибо!
Тим
import requests
import pandas as pd
import io

def queries_to_table(base, query, organism_id):
rest_url = base + f'query=(({query})AND(organism_id:{organism_id}))'
response = requests.get(rest_url)
if response.status_code == 200:
return pd.read_csv(io.StringIO(response.text),
sep = '\t')
else:
raise ValueError(f'The uniprot API returned a status code of {response.status_code}. '\
'This was not 200 as expected, which may reflect an issue '\
f'with your query: {query}.\n\nSee here for more '\
'information: https://www.uniprot.org/help/rest-api-headers. '\
f'Full url: {rest_url}')

size = 500
fields = 'accession,id,protein_name,gene_names,organism_name,'\
'length,sequence,go_p,go_c,go,go_f,ft_topo_dom,'\
'ft_transmem,cc_subcellular_location,ft_intramem'
url_base = f'https://rest.uniprot.org/uniprotkb/search?size={size}&'\
f'fields={fields}&format=tsv&'
query = '(id:TITIN_HUMAN)'
organism_id = 9606

df = queries_to_table(url_base, query, organism_id)
#-> df looks fine - one row and 15 columns

pd.concat([df]).to_csv('test2_error.csv')
#-> opening in excel this is broken - it splits df['Sequence'] into two rows at
#the junction between 'RLLANAECQEGQSVCFEIRVSGIPPPTLKWEKDG' and
#'PLSLGPNIEIIHEGLDYYALHIRDTLPEDTGYY'. In df['Sequence'], this sequence is joined
#by a 'q' (the below string covers the junction, and has the previously quoted substrings in capitals):
#tdstlrpmfkRLLANAECQEGQSVCFEIRVSGIPPPTLKWEKDGqPLSLGPNIEIIHEGLDYYALHIRDTLPEDTGYYrvtatntags


Подробнее здесь: https://stackoverflow.com/questions/790 ... ing-to-csv
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Pandas: как преобразовать кадр данных M*N в кадр данных (M*N)*1
    Anonymous » » в форуме Python
    0 Ответы
    88 Просмотры
    Последнее сообщение Anonymous
  • Номер порта «искажается» при импорте CSV в Excel 2010
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Java Files.isWritable искажается при запуске от root
    Anonymous » » в форуме Linux
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Рендеринг с использованием raycasting - текстура стены искажается при ограничении определенного размера [дубликат]
    Anonymous » » в форуме Python
    0 Ответы
    54 Просмотры
    Последнее сообщение Anonymous
  • Получение ошибки «Произошла ошибка при вызове o58.csv» при записи кадра данных Spark в файл CSV.
    Anonymous » » в форуме Python
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»