如何删除数据框中的某些行
我怎样才能在表格中保留u'Lower End of Central Tendency'
和u'Upper End of Central Tendency'
。并删除多余的行?
JSON数据如下
{u'2007': {u'Actual': u'3.5',
u'Lower\xa0End\xa0of\xa0Central\xa0Tendency': u'-',
u'Lower\xa0End\xa0of\xa0Range': u'-',
u'Upper\xa0End\xa0of\xa0Central\xa0Tendency': u'-',
u'Upper\xa0End\xa0of\xa0Range': u'-'},
u'2008': {u'Actual': u'1.7',
u'Lower\xa0End\xa0of\xa0Central\xa0Tendency': u'-',
u'Lower\xa0End\xa0of\xa0Range': u'-',
u'Upper\xa0End\xa0of\xa0Central\xa0Tendency': u'-',
u'Upper\xa0End\xa0of\xa0Range': u'-'},
u'2009': {u'Actual': u'1.4',
u'Lower\xa0End\xa0of\xa0Central\xa0Tendency': u'-',
u'Lower\xa0End\xa0of\xa0Range': u'-',
u'Upper\xa0End\xa0of\xa0Central\xa0Tendency': u'-',
u'Upper\xa0End\xa0of\xa0Range': u'-'},
u'2010': {u'Actual': u'1.5',
u'Lower\xa0End\xa0of\xa0Central\xa0Tendency': u'-',
u'Lower\xa0End\xa0of\xa0Range': u'-',
u'Upper\xa0End\xa0of\xa0Central\xa0Tendency': u'-',
u'Upper\xa0End\xa0of\xa0Range': u'-'},
u'2011': {u'Actual': u'2.5',
u'Lower\xa0End\xa0of\xa0Central\xa0Tendency': u'-',
u'Lower\xa0End\xa0of\xa0Range': u'-',
u'Upper\xa0End\xa0of\xa0Central\xa0Tendency': u'-',
u'Upper\xa0End\xa0of\xa0Range': u'-'},
u'2012': {u'Actual': u'-',
u'Lower\xa0End\xa0of\xa0Central\xa0Tendency': u'1.6',
u'Lower\xa0End\xa0of\xa0Range': u'1.6',
u'Upper\xa0End\xa0of\xa0Central\xa0Tendency': u'1.7',
u'Upper\xa0End\xa0of\xa0Range': u'1.8'},
u'2013': {u'Actual': u'-',
u'Lower\xa0End\xa0of\xa0Central\xa0Tendency': u'1.3',
u'Lower\xa0End\xa0of\xa0Range': u'1.3',
u'Upper\xa0End\xa0of\xa0Central\xa0Tendency': u'2.0',
u'Upper\xa0End\xa0of\xa0Range': u'2.0'},
u'2014': {u'Actual': u'-',
u'Lower\xa0End\xa0of\xa0Central\xa0Tendency': u'1.5',
u'Lower\xa0End\xa0of\xa0Range': u'1.4',
u'Upper\xa0End\xa0of\xa0Central\xa0Tendency': u'2.0',
u'Upper\xa0End\xa0of\xa0Range': u'2.2'},
u'2015': {u'Actual': u'-',
u'Lower\xa0End\xa0of\xa0Central\xa0Tendency': u'1.7',
u'Lower\xa0End\xa0of\xa0Range': u'1.5',
u'Upper\xa0End\xa0of\xa0Central\xa0Tendency': u'2.0',
u'Upper\xa0End\xa0of\xa0Range': u'2.2'},
u'Longer Run': {u'Actual': u'-',
u'Lower\xa0End\xa0of\xa0Central\xa0Tendency': u'2.0',
u'Lower\xa0End\xa0of\xa0Range': u'2.0',
u'Upper\xa0End\xa0of\xa0Central\xa0Tendency': u'2.0',
u'Upper\xa0End\xa0of\xa0Range': u'2.0'}}
答案 0 :(得分:0)
您正在寻找drop()
函数,有两种方法可以按名称和索引删除行。通过示例展示可能最容易:
>>> df
c1 c2 c3
one 0 1 2
two 3 4 5
three 6 7 8
four 9 10 11
>>> df2 = df.copy()
>>> df2.drop(['one', 'three'], axis=0, inplace=True)
>>> df2
c1 c2 c3
two 3 4 5
four 9 10 11
或者您可以使用索引的数字索引删除行,如下所示:
>>> df3.drop(df3.index[[0,3]], inplace=True)
>>> df3
c1 c2 c3
two 3 4 5
three 6 7 8
轴默认为0,因此如果您不将其放入,则删除行。要删除列,请使用axis = 1。 inplace
参数默认为False
。因此,如果您只想要一个没有坏行的副本,请保留该参数并保存返回值。
文档here。
答案 1 :(得分:0)
无需删除只需选择您感兴趣的行:
df.loc[['Lower End of Central Tendency','Upper End of Central Tendency']]
将仅对这些行执行行标签选择,例如:
In [164]:
df = pd.DataFrame({'a':np.random.randn(5)})
df
Out[164]:
a
0 0.523139
1 1.042023
2 1.528064
3 -1.920597
4 -0.408413
In [166]:
df.loc[[1,3]]
Out[166]:
a
1 1.042023
修改强>
如果你真的想删除它们,只需将它分配回你的df:
df = df.loc[[1,3]]