当前位置: 首页 > 面试题库 >

将新行添加到具有特定索引名称的Pandas DataFrame

澹台成龙
2023-03-14
问题内容

我正在尝试使用特定的索引名称向DataFrame添加新行'e'

    number   variable       values
a    NaN       bank          true   
b    3.0       shop          false  
c    0.5       market        true   
d    NaN       government    true

我已经尝试了以下方法,但是它正在创建一个新列而不是一个新行。

new_row = [1.0, 'hotel', 'true']
df = df.append(new_row)

仍然不了解如何插入具有特定索引的行。将不胜感激任何建议。


问题答案:

您可以使用df.loc[_not_yet_existing_index_label_] = new_row

演示:

In [3]: df.loc['e'] = [1.0, 'hotel', 'true']

In [4]: df
Out[4]:
   number    variable values
a     NaN        bank   True
b     3.0        shop  False
c     0.5      market   True
d     NaN  government   True
e     1.0       hotel   true

使用这种方法的PS,您不能添加具有现有(重复)索引值(标签)的行-在这种情况下,具有此索引标签的行将被 更新

更新:

如果索引是DateTimeIndex并且新行的索引不存在,则在最近的Pandas / Python3中这可能不起作用。

如果我们指定正确的索引值,它将起作用。

演示(使用pandas: 0.23.4):

In [17]: ix = pd.date_range('2018-11-10 00:00:00', periods=4, freq='30min')

In [18]: df = pd.DataFrame(np.random.randint(100, size=(4,3)), columns=list('abc'), index=ix)

In [19]: df
Out[19]:
                      a   b   c
2018-11-10 00:00:00  77  64  90
2018-11-10 00:30:00   9  39  26
2018-11-10 01:00:00  63  93  72
2018-11-10 01:30:00  59  75  37

In [20]: df.loc[pd.to_datetime('2018-11-10 02:00:00')] = [100,100,100]

In [21]: df
Out[21]:
                       a    b    c
2018-11-10 00:00:00   77   64   90
2018-11-10 00:30:00    9   39   26
2018-11-10 01:00:00   63   93   72
2018-11-10 01:30:00   59   75   37
2018-11-10 02:00:00  100  100  100

In [22]: df.index
Out[22]: DatetimeIndex(['2018-11-10 00:00:00', '2018-11-10 00:30:00', '2018-11-10 01:00:00', '2018-11-10 01:30:00', '2018-11-10 02:00:00'], dtype='da
tetime64[ns]', freq=None)


 类似资料:
  • 对于如何向已经存在的Lucene索引添加方面,我有点困惑。 我有一个使用Lucene 3.1创建的Lucene索引(创建时没有任何方面)。 我已经查看了Lucene文档中的facet,在那里他们向您展示了如何从头创建一个带有facet的索引,也就是说,您创建一个新的Lucene对象,使用分类工具向其添加facet信息(类别),然后在Lucene索引中编写该文档(使用)这还将向分类法索引添加额外数据

  • 我有一个具有WSDL定义的非常基本的WCF服务,如下所示: 我想添加名称空间xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance“根据定义,但我不知道在哪里以及如何。 如何添加该名称空间?非常感谢。

  • 我在PrimeFaces3.5中使用JSF。我使用而不使用属性,而是显式地使用和创建行和列,如展示案例(http://www.primefaces.org/showcase/ui/panelgrid.jsf)所示。 现在我需要在一些CSS类的帮助下对一行进行不同的样式设置。但是要么我错过了它,要么就是没有办法向添加类?!我甚至可以设置属性,但在呈现的输出中会忽略它...

  • 问题内容: 我认为这是一个非常简单的问题,但我不知道如何正确执行此操作。 我有一个空的arraylist: 我有一些要添加的对象,每个对象必须位于某个位置。但是,有必要可以按每种可能的顺序添加它们。当我尝试此操作时,它不起作用,我得到了: 我曾尝试是填充用,然后做以上。它有效,但是我认为这是一个可怕的解决方案。还有另一种方法吗? 问题答案: 您可以这样做: 将对象2添加到位置2后,它将把对象3移动

  • 问题内容: 是通过其他方式或查询来查找具有特定列而不是如下所示的数据库表名称的方法, 问题答案: 在SQL Server中,您可以查询。 就像是: 如果您有多个模式中的表,则可能需要其他查找来解析模式名称。

  • 我是新来的,不知道该怎么办。情况就是这样 1)我有一个表,我有3列,其中一列有一个类别值。 2) 我正在编写一个脚本,从表中选择范围并在特定列中查找该值。 3) 如果该行具有我要查找的值,我希望复制表的整行并将其粘贴到新的电子表格上。 函数设置 var表=电子表格应用程序。getActiveSpreadsheet()。getSheetByName(“Sheet1”); var范围=工作表。getR