尽管前面的问题提出了建议:
-9999 作为 numpy.genfromtxt() 的缺失值 https://stackoverflow.com/questions/12274709/9999-as-missing-value-with-numpy-genfromtxt
使用 genfromtxt 导入 numpy 中缺失值的 csv 数据 https://stackoverflow.com/questions/3761103/using-genfromtxt-to-import-csv-data-with-missing-values-in-numpy
我仍然无法处理以缺失值结尾的文本文件,
a.txt:
1 2 3
4 5 6
7 8
我尝试过多种选择的安排missing_values
, filling_values
并且无法让它工作:
import numpy as np
sol = np.genfromtxt("a.txt",
dtype=float,
invalid_raise=False,
missing_values=None,
usemask=True,
filling_values=0.0)
print sol
我想得到的是:
[[1.0 2.0 3.0]
[4.0 5.0 6.0]
[7.0 8.0 0.0]]
但我得到的是:
/usr/local/lib/python2.7/dist-packages/numpy/lib/npyio.py:1641: ConversionWarning: Some errors were detected !
Line #3 (got 2 columns instead of 3)
warnings.warn(errmsg, ConversionWarning)
[[1.0 2.0 3.0]
[4.0 5.0 6.0]]
Using pandas http://pandas.pydata.org/:
import pandas as pd
df = pd.read_table('data', sep='\s+', header=None)
df.fillna(0, inplace=True)
print(df)
# 0 1 2
# 0 1 2 3
# 1 4 5 6
# 2 7 8 0
pandas.read_table
将丢失的数据替换为NaN
s。你可以替换那些NaN
s 与一些其他值使用df.fillna
.
df
is a pandas.DataFrame
。您可以使用以下命令访问底层 NumPy 数组df.values
:
print(df.values)
# [[ 1. 2. 3.]
# [ 4. 5. 6.]
# [ 7. 8. 0.]]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)