Python “熊猫”dropna,正在删除哪些行
这是我拥有的数据帧:Python “熊猫”dropna,正在删除哪些行,python,pandas,Python,Pandas,这是我拥有的数据帧: A B C D F E 2013-01-01 0.000000 0.000000 0.100928 5 NaN 1 2013-01-02 0.640525 0.220630 1.070226 5 1 1 2013-01-03 -0.963793 -0.476044 -0.581649 5 2 NaN 2013-01-04 0.882686 -0.371904
A B C D F E
2013-01-01 0.000000 0.000000 0.100928 5 NaN 1
2013-01-02 0.640525 0.220630 1.070226 5 1 1
2013-01-03 -0.963793 -0.476044 -0.581649 5 2 NaN
2013-01-04 0.882686 -0.371904 -1.320758 5 3 NaN
2013-01-05 0.021979 0.680987 -0.605329 5 4 NaN
2013-01-06 -0.238726 -0.487410 -0.383292 5 5 NaN
然后我运行以下代码:df1.dropna(how='any')
,其中df1
是上面的数据帧。当我随后查看df1
时,我得到的就是这个
A B C D F E
2013-01-01 0.000000 0.000000 0.100928 5 NaN NaN
2013-01-02 0.640525 0.220630 1.070226 5 1 NaN
2013-01-03 -0.963793 -0.476044 -0.581649 5 2 NaN
2013-01-04 0.882686 -0.371904 -1.320758 5 3 NaN
我认为dropna
会删除任何包含NaN
值的行。因此,我希望它只返回以下内容:
A B C D F E
2013-01-02 0.640525 0.220630 1.070226 5 1 1
为什么不是这样
编辑:这是代码
这是我的开始:
dates = pd.date_range('20130101',periods=6)
df = pd.DataFrame(np.random.randn(6,4),index=dates,columns = list('ABCD'))
然后我会这样做:
s1 = pd.Series([1,2,3,4,5,6],index=pd.date_range('20130102',periods=6))
df['F'] = s1
df.at[dates[0],'A'] = 0
df.iat[0,1] = 0
df.loc[:,'D'] = np.array([5]*len(df))
df1 = df.reindex(index=dates[0:4], columns = list(df.columns) + ['E'])
df1.loc[dates[0]:dates[1],'E'] = 1
然后我运行
dropna
dropna
返回一个新的DataFrame
。因此,要获得您想要的结果,您必须添加
df2 = df1.dropna(how='any');
现在df2
保存所需的输出。如果希望df1
获得thr结果,请使用:
df1.dropna(how='any', inplace=True)
它在原地修改df1。
希望这有帮助 发布显示df创建的完整代码,因为我无法复制上面的检查。我想这就是我的全部了ran@EdChum复制我用
pandas.read\u clipboard()
inplace=True时不返回任何内容