我正在使用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,