Arhn - архитектура программирования

Добавление списка в начало вывода Pandas DataFrame

У меня есть следующий текстовый файл в качестве входных данных (infile.txt)

A foo 3.0
A bar 3.1
B foo 3.0
B bar 3.1

И со следующим кодом

import pandas as pd

infile="infile.txt"
df = pd.io.parsers.read_table(infile,header=None,sep=" ")
df.columns = ['sample','celltype','score']
dfp = df.pivot(index='sample',columns='celltype',values='score')
dfp_prc =  dfp.applymap(lambda x: x * 100)
dfp_prc.to_csv("out.txt",sep=" ", index=True)

он создает этот CSV:

sample bar foo
A 310.0 300.0
B 310.0 300.0

То, что я хочу сделать тогда, дается список:

mlist = ['sample','XXX','YYY']

Я хотел бы получить окончательный файл CSV, который выглядит так:

sample XXX YYY
sample bar foo
A 310.0 300.0
B 310.0 300.0

Как это удобно сделать в Pandas?

30.01.2015

Ответы:


1

to_csv также принимает имя файла или буфер (открытый файл), поэтому вместо

dfp_prc.to_csv("out.txt",sep=" ", index=True)

использовать

import csv

...

mlist = ['sample','XXX','YYY']
sep = ' '
with open('out.txt', 'w') as f:
    csv.writer(f, delimiter=sep, lineterminator='\n').writerow(mlist)
    dfp_prc.to_csv(f, sep=sep, index=True)

Итак, вы открываете файл, используете csv.writer для вставки строки, а затем в те же открытые файлы вы экспортируете DataFrame.

30.01.2015
  • @euromiro: Спасибо. После записи в конце первой строки стоит ^M. Есть ли способ удалить его? 30.01.2015
  • @pdubois - да, добавьте параметр lineterminator к csv.writer - см. мой отредактированный ответ и документацию здесь: docs.python.org/2/library/ 30.01.2015
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..