перебирая длинный список для генерации небольших списков и добавления к csv - PullRequest
0 голосов
/ 05 сентября 2018

Боролся с этим и задавался вопросом, может ли кто-нибудь помочь. У меня есть код, который генерирует большой список из 300 предметов. Я хочу записать это в CSV-файл с помощью панд, но записать разные подсписки в разные строки. например Возьмите пункты 0-7 и напишите в один ряд, затем 1-8, 2-9 и так далее до 293-300. В настоящее время то, что я делаю, это это и вручную изменить выбор в df.iloc[:,2:9] но я надеялся, что найдется способ автоматизировать это с помощью цикла.

Это то, что я имею в качестве примера до сих пор. sncomo - это просто пакет для генерации данных. его вывод - это то, что я хочу разделить и сохранить в CSV-файл.

import sncosmo
import pandas as pd

days_apart = list(range(55, 300))
model = sncosmo.Model(source="hsiao")
model.set(z=1.5, t0=100)
y = model.bandmag('desr', 'ab', days_apart)
df = pd.DataFrame([y])
df1 = df.iloc[:,2:9]
with open("test_data.csv", "a") as f:
    df1.to_csv(f, header=False)

Надеюсь, кто-то может помочь, спасибо!

1 Ответ

0 голосов
/ 05 сентября 2018

Я бы просто использовал for цикл с enumerate

import sncosmo
import pandas as pd

days_apart = list(range(55, 300))
model = sncosmo.Model(source="hsiao")
model.set(z=1.5, t0=100)
y = model.bandmag('desr', 'ab', days_apart)
df = pd.DataFrame([y])
for i, j in enumerate(range(6,300)):
    df1 = df.iloc[:,i:j+1]
    with open("test_data.csv", "a") as f:
        df1.to_csv(f, header=False)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...