如何在索引 2 处向 pandas 数据帧添加额外的行而不覆盖现有索引

Posted

技术标签:

【中文标题】如何在索引 2 处向 pandas 数据帧添加额外的行而不覆盖现有索引【英文标题】:How to add an extra row to pandas dataframe at index 2 without overwriting existing index 【发布时间】:2016-10-24 20:20:47 【问题描述】:

在将我的输出数据框写入 excel 文件之前,我需要向我的数据框添加一个额外的行。下面是我的示例数据框:

    -----------------------------
    | Col1 | Col2 | Col3 | Col4 |
    -----------------------------
0   | CA1  | CB1  | CC2  | CD1  |
1   | CA5  | CB5  | CC5  | CD5  |
2   | CA3  | CB3  | CC3  | CD3  |
    -----------------------------

mydict= 'Col1': 'P', 'Col2': 'Q', 'Col3': 'R', 'Col4': 'S'

现在我需要添加一个额外的行,应该从 mydict 中选择与列标题对应的新行值。

期望的输出:

    -----------------------------
    | Col1 | Col2 | Col3 | Col4 |
    -----------------------------
    |  P   |  Q   |  R   | S    |
0   | CA1  | CB1  | CC2  | CD1  |
1   | CA5  | CB5  | CC5  | CD5  |
2   | CA3  | CB3  | CC3  | CD3  |
    -----------------------------

谁能帮忙。

【问题讨论】:

How to add an extra row to a pandas dataframe的可能重复 我的问题不同。我需要在索引 2 处添加一个新行。如果这样做,它会覆盖现有行吗?还想知道如何从 mydict 获取相应列标题的值。谢谢。 我很困惑...这是您想要的输出吗?您是要在所需位置插入一行还是要为每列获取多个名称? 【参考方案1】:

这对你有用吗?首先,将mydict转换为数据框,然后使用pd.concat

mydict = mydict= 'Col1': 'P', 'Col2': 'Q', 'Col3': 'R', 'Col4': 'S'
df1 = pd.DataFrame(data=mydict, index=[0])

data = np.array([['CA1', 'CB1', 'CC2', 'CD1'],
                 ['CA5', 'CB5', 'CC5', 'CD5'],
                 ['CA3', 'CB3', 'CC3', 'CD3']])
df2 = pd.DataFrame(data, columns=['Col1', 'Col2', 'Col3', 'Col4'])

new_df = pd.concat([df1, df2])

那么new_df就是

In [58]: new_df
Out[58]: 
  Col1 Col2 Col3 Col4
0    P    Q    R    S
0  CA1  CB1  CC2  CD1
1  CA5  CB5  CC5  CD5
2  CA3  CB3  CC3  CD3

【讨论】:

以上是关于如何在索引 2 处向 pandas 数据帧添加额外的行而不覆盖现有索引的主要内容,如果未能解决你的问题,请参考以下文章

如何在 pandas 中使用 apply 函数,同时将索引映射到两个不同的数据帧?

如何使用分层索引保存和检索 Pandas 数据帧?

在pandas数据帧中的行之间添加随机数据

如何删除 Pandas 数据帧索引的“秒”?

在 pandas 中加入数据帧时的内存问题(时间索引)

在 Pandas 中合并索引上的数据帧更有效