numpy.set_printoptions(nanstr ='')对于numpy.savetxt()不起作用

时间:2019-05-07 09:03:01

标签: python numpy

我正在使用Python 3.6.4。我正在进行一项实验,以找到更快的替代pandas.to_csv()的方法,并使用numpy.savetxt()将数据帧作为csv存储在文件中。默认情况下,此函数在数据帧中为np.nan值放入nan字符串。我想在csv输出中为np.nan值添加“(空字符串)。

我尝试了np.set_printoptions(nanstr=''),但似乎没有什么不同。我尝试将nanstr更改为各种字符串值,但看起来该选项根本不兑现。我确实看到np.get_printoptions()中的选项设置正确

df0 = pd.DataFrame({'id': ['1_node', '2_node', '3_node', '4_node'],
                    'prop1': [np.nan,np.nan,'ABC','DEF'],
                    'prop2': [1,np.nan,2,np.nan]})

print("Numpy version: {}".format(np.__version__))
np.set_printoptions(nanstr='')
print(np.get_printoptions())
np.savetxt( 'temp.op', df0.values, fmt="%s", comments='',delimiter=",")

输出:

Numpy version: 1.14.0
{'edgeitems': 3, 'threshold': 1000, 'floatmode': 'maxprec', 'precision': 8, 'suppress': False, 'linewidth': 75, 'nanstr': '', 'infstr': 'inf', 'sign': '-', 'formatter': None, 'legacy': False}

temp.op
1_node,nan,1.0
2_node,nan,nan
3_node,ABC,2.0
4_node,DEF,nan

预期输出:

1_node,,1.0
2_node,,
3_node,ABC,2.0
4_node,DEF,

0 个答案:

没有答案