python - 无法将新的 DataFrame 写入 csv 文件
问题描述
我正在尝试将新数据框写入 CSV 文件。但它没有被写入文件(空文件),也没有给出任何错误。
我觉得问题出在这条线上。因为我试图将单个值写入列。
order['trade_type'] = trade_type
知道这里有什么问题。
def write_transaction_to_file(trade_type):
order = pd.DataFrame()
order['trade_type'] = trade_type
order.to_csv("open_pos.csv", sep='\t', index=False)
write_transaction_to_file('SELL')
解决方案
您的代码创建了一个空的DataFrame,甚至没有列名。
现在看看order['trade_type'] = trade_type
。
如果order包含一些行,则在列中只有一个名为 “trade_type”(字符串)并且trade_type(变量)是一个标量,那么在order中的所有行中都会收到这个值(在这一列中)。
但是由于order不包含rows,因此没有地方可以写入。
相反,您可以附加一行,例如:
order = order.append({'trade_type': trade_type}, ignore_index=True)
其余代码OK,输出文件名为普通字符串也OK。
其他解决方案:只需创建一个具有单行和单个命名列的 DataFrame,并填充您的变量:
order = pd.DataFrame([[trade_type]], columns=['trade_type'])
然后像以前一样将其写入 CSV 文件。
推荐阅读
- objective-c - 在 drawatpoint 处使用多种字体颜色设置 UILabel
- mysql - 如何将具有急切加载的雄辩查询更改为简单的 mysql 查询
- c# - 有没有办法使用 pdfsharp 项目修复 Linux 上的 user32.dll 错误?
- flutter - 带有圆角的 Flutter WebView
- image-processing - 如何从图像中去除大颗粒噪声?
- node.js - 在 NodeJS 中的 Fabric 1.4 中将 google.protobuf.Timestamp 转换为 ISO 格式
- string - 如何确保字符串被赋予正确的格式
- android - 批量更新时会触发多少次 onUpdate 函数?
- python - 如何通过删除 for 循环使代码更快
- odoo - 无法在自定义模块中为普通用户创建记录(只能由管理员访问权限创建)