首页 > 解决方案 > 无法将新的 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')

标签: pythonpandasdataframe

解决方案


您的代码创建了一个的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 文件。


推荐阅读