如何在a,b,c ...中删除csv_file中的缺失值: 这是我的编码:
import numpy as np
FNAME ="C:/Users/lenovo/Desktop/table.csv"
my_data = np.genfromtxt (FNAME, delimiter = ',')
a= my_data [:,0]
b= my_data [:,1]
c= my_data [:,2]
d=my_data[:,3]
e= my_data[:,4]
f= my_data[:,5]
g= my_data[:,6]
我的csv_file的摘录:
0,1,135,3,82,4,1
0,1,98,5,82,3,1
21175,1,98,5,82,3,1
9147,2,80,5,82,2,2
1829,2,80,5,82,2,2
3659,2,80,5,82,2,2
10976,2,80,5,82,2,2
0,2,40,2,24,1,2
0,2,40,2,24,1,2
29710,2,40,2,24,1,2
0,1,90,3,31,2,2
0,1,90,3,31,2,2
11434,1,90,3,31,2,2
0,2,85,4,72,3,2
6039,2,85,4,72,3,2
34758,1,100,,52,,
0,1,100,,52,,
感谢名单
答案 0 :(得分:1)
Pandas有一个内置的方法:
from pandas import DataFrame, read_csv
FNAME ="C:/Users/lenovo/Desktop/table.csv"
df = read_csv(FNAME, header=None, index_col=None)
print df.dropna()
答案 1 :(得分:0)
从您的问题中不清楚您是要删除列中的值(对我来说听起来不对)还是从所有列中删除。无论哪种方式,最好使用genfromtxt
的力量。我建议您阅读this marvellous guide或just the docs。
在那里,您将找到一个参数missing values
,您可以指定在导入时如何处理此类事件。有许多不同的方法可以做到这一点,但一个例子可能是使用genfromtxt
用nan
替换丢失的浮点数的事实。检查连续出现nan
并忽略是否为真:
import numpy as np
from StringIO import StringIO
data = """
0,4,1
34758,1,100
52,,
"""
my_data = np.genfromtxt(StringIO(data), delimiter=",")
index_to_use=[]
for i, row in enumerate(my_data):
if True not in np.isnan(row):
index_to_use.append(i)
print my_data[index_to_use]
>>>
[[ 0.00000000e+00 4.00000000e+00 1.00000000e+00]
[ 3.47580000e+04 1.00000000e+00 1.00000000e+02]]
为了便于阅读,我减少了您的数据样本。