我正在尝试将新的数据帧写入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')
答案 0 :(得分:2)
您的代码创建一个空数据框,甚至没有列名。
现在看一下order['trade_type'] = trade_type
。
如果 order 包含一些行,则列之间只有一个名为 'trade_type'(字符串)和 trade_type (变量)是标量, 那么在 order 中的所有行中都将收到该值(在此列中)。
但是由于 order 包含没有行,所以没有写入的地方。
相反,您可以追加一行,例如:
order = order.append({'trade_type': trade_type}, ignore_index=True)
其余代码都OK,输出文件名为普通字符串 也可以。
其他解决方案:只需创建一个具有单行和单个数据框 命名列,其中填充了您的变量:
order = pd.DataFrame([[trade_type]], columns=['trade_type'])
然后像以前一样将其写入CSV文件。