迭代长列表以生成较小的列表并附加到 csv
Posted
技术标签:
【中文标题】迭代长列表以生成较小的列表并附加到 csv【英文标题】:iterating over long list to generate smaller lists and append to csv 【发布时间】:2019-02-10 00:31:38 【问题描述】:为此苦苦挣扎,想知道是否有人可以提供帮助。
我有一个代码可以生成一个包含 300 个项目的大型列表。
我想使用 pandas 将其写入 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】:我只会使用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)
【讨论】:
以上是关于迭代长列表以生成较小的列表并附加到 csv的主要内容,如果未能解决你的问题,请参考以下文章