在Python中用NaNs将Numpy数组写入CSV

时间:2019-03-21 04:38:48

标签: python python-3.x csv numpy nan

我正在尝试使用numpy array将2D np.savetxt写入csv文件。

import numpy as np

data = np.array([[0,np.nan,2,3],[4,5,np.nan,7],[8,9,10,np.nan]])

np.savetxt("file.csv", data, delimiter=",", fmt='%.2f')

将创建具有以下内容的文件file.csv

0.00,nan,2.00,3.00
4.00,5.00,nan,7.00
8.00,9.00,10.00,nan

您会看到文件包含nan而不是空格。我知道nan不是字符串。

预期输出:

0.00,,2.00,3.00
4.00,5.00,,7.00
8.00,9.00,10.00,

使用pandas可以像下面这样实现。

import pandas as pd

df = pd.DataFrame(data)
df.to_csv("file1.csv", index=False)

但是我暂时不使用pandas。那么可以使用numpy来做到这一点吗?

1 个答案:

答案 0 :(得分:2)

最直接的解决方案:

data1 = data.astype(str)
data1[data1=='nan'] = ''
np.savetxt("file.csv", data1, delimiter=",", fmt="%s")