迭代长列表以生成较小的列表并附加到cs

2024-06-16 18:59:30 发布

您现在位置:Python中文网/ 问答频道 /正文

正在挣扎,想知道是否有人能帮上忙。 我有一个生成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)

希望有人能帮忙谢谢!你知道吗


Tags: 文件csv项目代码importdf列表model
1条回答
网友
1楼 · 发布于 2024-06-16 18:59:30

我只想用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)

相关问题 更多 >