繁体   English   中英

将 csv 写为输出而不是打印

[英]write csv as output instead of print

我提出了一个 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"]
            )```

循环遍历数据帧是一个糟糕的主意,性能明智。 如果你真的想那样做,你可以使用 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"]
            )

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

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

df.to_csv('out.csv')  

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM