Python 如何真正过滤pandas数据集而不在任何地方留下Nans

Python 如何真正过滤pandas数据集而不在任何地方留下Nans,python,pandas,filter,Python,Pandas,Filter,假设我有一个巨大的DataFrame,其中只包含少数与我执行的过滤匹配的单元格。如何在一个新的数据帧中只得到与之匹配的值(以及它们的索引和列),而没有变成Nan的整个另一个dataframe。用dropna删除Nan只会删除整列或整行,filter用Nan替换不匹配项。 这是我的密码: 将numpy导入为np 作为pd进口熊猫 df=pd.DataFrame(np.random.random((10001000))) #这一个几乎充满了南 df[df如果需要其他格式的非缺失值,可以使用: np.

假设我有一个巨大的
DataFrame
,其中只包含少数与我执行的过滤匹配的单元格。如何在一个新的数据帧中只得到与之匹配的值(以及它们的索引和列),而没有变成Nan的整个另一个
dataframe
。用
dropna
删除Nan只会删除整列或整行,
filter
用Nan替换不匹配项。
这是我的密码:

将numpy导入为np
作为pd进口熊猫
df=pd.DataFrame(np.random.random((10001000)))
#这一个几乎充满了南

df[df如果需要其他格式的非缺失值,可以使用:

np.random.seed(2020年)
df=pd.DataFrame(np.random.randint(10,size=(5,3)))
#这一个几乎充满了南

df1=df[DF你能把你的代码添加到问题中吗?你的条件看起来如何?你如何过滤?当然@jezrael,刚刚添加的是一种方法,可以得到一个数据帧,其中只包含完成过滤的值?只需它们自己,同一行中没有其他单元格,或者如果行中不是所有的值,也不丢弃整行?@Ma里约-不确定是否理解,我尝试编辑答案。
np.random.seed(2020)

df = pd.DataFrame(np.random.randint(10, size=(5, 3)))

# this one is almost filled with Nans
df1 = df[df<7]
print (df1)
     0    1    2
0  0.0  NaN  3.0
1  6.0  3.0  3.0
2  NaN  NaN  0.0
3  0.0  NaN  NaN
4  3.0  NaN  2.0

df2 = df1.stack().rename_axis(('a','b')).reset_index(name='c')
print (df2)
   a  b    c
0  0  0  0.0
1  0  2  3.0
2  1  0  6.0
3  1  1  3.0
4  1  2  3.0
5  2  2  0.0
6  3  0  0.0
7  4  0  3.0
8  4  2  2.0