python - 使用 Pandas 连续打印文件
问题描述
在 for 循环中,我想在文件上打印每个步骤的计算结果。在 C 语言中fprintf
它会自动完成。让我们看看这个 MWE:
from pathlib import Path
import numpy as np
import pandas as pd
outfile = Path("hello_world.csv")
x_n = 0
for t in np.arange(0, 100, 0.01):
x_n = t+1
pd.DataFrame([t, x_n]).T.to_csv(outfile, header=["t", "x"], index=False)
当然,通过这种方式,我获得了一个只有 2 个值的文件,因为对于每一步,以前的值都会被覆盖。我的目标是拥有一个文件,其列元素是每个循环步骤的结果。
解决方案
您可以使用mode参数指定要附加值,而不是覆盖它们。
...
from pathlib import Path
import numpy as np
import pandas as pd
outfile = Path("./hello_world.csv")
x_n = 0
for t in np.arange(0, 100, 0.01):
if not outfile.exists():
pd.DataFrame([t, x_n]).T.to_csv(outfile, header=["t", "x"], index=False)
else:
# avoid appending the header
pd.DataFrame([t, x_n]).T.to_csv(outfile, mode="a", index=False, header=False)
x_n = t + 1
my_data = pd.read_csv(outfile)
print(my_data)
# Outputs
t x
0 0.00 0.00
1 0.01 1.00
2 0.02 1.01
3 0.03 1.02
4 0.04 1.03
... ... ...
10995 99.95 100.94
10996 99.96 100.95
10997 99.97 100.96
10998 99.98 100.97
10999 99.99 100.98
推荐阅读
- javascript - 比较和处理对象中的布尔值
- google-apps-script - 有没有办法在谷歌表格中自动保存数据?
- asp.net - Blazor 组件参数不应设置在其组件之外
- c# - 如何获取 Perforce (P4Api.net) 工作区路径
- html - 我能知道这些代码行中的错误是什么吗
- flutter - Flutter 中的 BLOC 模式是什么?
- python - 如何在moviepy中显示韩语?
- wso2 - WSO2 APIM 到 WSO2 EI 有效负载传输问题 - APIM 抛出 101504 错误
- javascript - 在 JavaScript 中将字符串数组转换为时间戳
- php - 防止带有 AJAX 请求内容的 PHP 页面上的 Adsense“无内容”标签