从python

时间:2017-07-14 08:18:53

标签: python pandas dataframe

我是python中的新手,并在python中构建神经网络回归模型。

我尝试排除pandas.DataFrame中值为零的行,但不知道如何...

例如,如果我有csv,如下所示

input1   input2    input3   input4   input5        y
370     17.40013    8.9       4       740       883.0246
370     17.35865    8.9       4       740       884.0846
370     17.30227    0         4       740       884.9326
370     17.32991    8.9       4       740       884.4379
370     17.55929    0         4       740       883.1424
370     17.6505     8.9       4       740       883.1188

并希望排除零值的行(示例上方的第3行和第5行)。

我现在的代码包括以下代码的所有数据行,

s1 = pd.Series(RMR_list)
s2 = pd.Series(PHT_list)
s3 = pd.Series(KLNF_list)
s4 = pd.Series(KLNM_list)
s5 = pd.Series(IDF_list)
s6 = pd.Series(CCN_list)

df = DataFrame({'RMR': RMR_list, 'PHT': PHT_list, 'KLN_F': s3.reindex(s1.index), 'KLN_M': s4.reindex(s1.index), 'IDF_M': s5.reindex(s1.index), 'CCN': s6.reindex(s1.index)})
df = df.values

#Setting training data and test data
train_size_x = int(len(df)*0.8)                     #The user can change the range of training data
print(train_size_x)
X_train = df[0:train_size_x, 1:6]
t_train = df[0:train_size_x, 0]
X_test = df[train_size_x:int(len(df)), 1:6]
t_test = df[train_size_x:int(len(df)), 0]

将我的整个数据的80%用作训练数据,其余数据是测试数据。我试图从训练和测试数据中排除零值的行。

我应该如何在python代码中实现..?

PS。我正在使用python 3.6

1 个答案:

答案 0 :(得分:4)

试试这个:

df.loc[df.ne(0).all(axis=1)]

这将只返回任何列

中没有零(0)值的行

如果要删除包含零值的行:

df = df.loc[df.ne(0).all(axis=1)]