将CSV写为输出而不是打印

Posted

技术标签:

【中文标题】将CSV写为输出而不是打印【英文标题】:write csv as output instead of print 【发布时间】:2021-12-11 17:04:48 【问题描述】:

我提出了一个 API 请求并在循环中打印了一个 DataFrame。

现在我想代替打印,直接将输出写入 csv。 我在网上寻找答案,但不明白。非常感谢您的帮助!

这是我的循环:

for company in eic_listing:
    for facility in company["facilities"]:
        if "df" in facility:
            print(company["name"], facility["name"])
            print(
                facility["df"]["status"],
                facility["df"]["gasDayStartedOn"],
                facility["df"]["gasInStorage"],
                facility["df"]["full"],
                facility["df"]["withdrawal"]
            )```

【问题讨论】:

***.com/questions/tagged/python+csv 哪一个是您想要的输出:1. csv 文件,或 2. csv 格式的打印输出?哪一个? csv格式的打印输出 【参考方案1】:

在性能方面,循环遍历数据框是一个糟糕的想法。如果你真的想这样做,你可以使用 csv 模块将输出格式化为 csv:

import csv
...
wr = csv.writer(sys.stdout)  # or use a Python file object here...
for company in eic_listing:
    for facility in company["facilities"]:
        if "df" in facility:
            wr.writerow(company["name"], facility["name"],
                facility["df"]["status"],
                facility["df"]["gasDayStartedOn"],
                facility["df"]["gasInStorage"],
                facility["df"]["full"],
                facility["df"]["withdrawal"]
            )

【讨论】:

谢谢,这很有帮助!你能提示一个更好的方法吗? @NoelHarris:不,我不能,至少在不知道什么是 eic_listingcompanyfacility...【参考方案2】:

Pandas 确实有一个“to_csv”方法。也许这会对你有所帮助:pandas.DataFrame.to_csv

【讨论】:

我知道,谢谢,我的问题是,如何将它集成到打印输出中而不是打印出来?【参考方案3】:

尝试将您的打印行替换为:

df.to_csv('out.csv')  

【讨论】:

不,我在问,如何将它集成到循环中,而不是打印它

以上是关于将CSV写为输出而不是打印的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Java 中的 PrintWriter 将逗号打印到 .csv 文件?

Python re.findall 将输出打印为列表而不是字符串

如何将 foreach 输出为字符串 c# // g 打印为数组而不是字符串

Python pandas:使用整数将数据帧输出到csv

尝试在Python中将集合的结果写入csv文件,但只打印一行

Python - 分配打印输出csv