为什么大Pandas数据帧在我删除所选行后只显示NaN值?

2024-06-16 17:08:25 发布

您现在位置:Python中文网/ 问答频道 /正文

使用pandas library v.17.1,我试图从一个名为productDataNat的大(882504行)数据帧中删除这些行,其中parName==rt',但是所有其他行都变成NaN

productDataNat = pd.read_csv('https://lobianco.org/temp/productData_P0-Mi-Ei.csv',sep=';',  dtype={'value': np.float64})
productDataNat = productDataNat.drop(['Unnamed: 8'],axis=1)
productDataNat.set_index(['scen','country','region','prod','freeDim','year','parName'], inplace=True)
productDataNat.head()

out1

^{pr2}$

enter image description here

相反,当我使用一个示例数据帧时,它会按预期工作:

midx = pd.MultiIndex(levels=[['one', 'two'], ['x','y']], labels=[[1,1,1,0],[1,0,1,0]])
dfmix = pd.DataFrame({'A' : [1, 2, 3, 4], 'B': [5, 6, 7, 8]}, index=midx)
dfmix

enter image description here

dfmix.drop('x',level=1,axis=0)

enter image description here

熊猫身上有虫子还是出了什么问题(什么?)用我的数据帧?在


Tags: csv数据pandasreadindexlibrarynandrop
1条回答
网友
1楼 · 发布于 2024-06-16 17:08:25

更正: 它对我的作用完全相同(我使用的是Pandas v0.18.0):

In [4]: df.drop('rt', level='parName', axis=0)
Out[4]:
                                                          value
scen     country region prod        freeDim year parName
P0-Mi-Ei 11000   11042  hardWRoundW NaN     2005 dl         NaN
                        softWRoundW NaN     2005 dl         NaN
                        pulpWFuelW  NaN     2005 dl         NaN
                        ashRoundW   NaN     2005 dl         NaN
                        fuelW       NaN     2005 dl         NaN
                        hardWSawnW  NaN     2005 dl         NaN
                        softWSawnW  NaN     2005 dl         NaN
                        plyW        NaN     2005 dl         NaN
                        pulpW       NaN     2005 dl         NaN
                        pannels     NaN     2005 dl         NaN
                        ashSawnW    NaN     2005 dl         NaN
                        ashPlyW     NaN     2005 dl         NaN
                 11061  hardWRoundW NaN     2005 dl         NaN
                        softWRoundW NaN     2005 dl         NaN
                        pulpWFuelW  NaN     2005 dl         NaN
                        ashRoundW   NaN     2005 dl         NaN
                        fuelW       NaN     2005 dl         NaN
                        hardWSawnW  NaN     2005 dl         NaN
                        softWSawnW  NaN     2005 dl         NaN
                        plyW        NaN     2005 dl         NaN
                        pulpW       NaN     2005 dl         NaN
                        pannels     NaN     2005 dl         NaN
                        ashSawnW    NaN     2005 dl         NaN
                        ashPlyW     NaN     2005 dl         NaN
                 11072  hardWRoundW NaN     2005 dl         NaN
                        softWRoundW NaN     2005 dl         NaN
                        pulpWFuelW  NaN     2005 dl         NaN
                        ashRoundW   NaN     2005 dl         NaN
                        fuelW       NaN     2005 dl         NaN
                        hardWSawnW  NaN     2005 dl         NaN

作为一种解决方法,您可以在设置多重索引之前删除rts:

^{pr2}$

相关问题 更多 >