【问题标题】:How to add an extra row to pandas dataframe at index 2 without overwriting existing index如何在索引 2 处向 pandas 数据帧添加额外的行而不覆盖现有索引
【发布时间】: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  |
    -----------------------------

谁能帮忙。

【问题讨论】:

  • 我的问题不同。我需要在索引 2 处添加一个新行。如果这样做,它会覆盖现有行吗?还想知道如何从 mydict 获取相应列标题的值。谢谢。
  • 我很困惑...这是您想要的输出吗?您是要在所需位置插入一行还是要为每列获取多个名称?

标签: python pandas


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-19
    • 2018-12-06
    • 2012-07-18
    • 2019-08-12
    • 2012-09-06
    • 2011-02-19
    相关资源
    最近更新 更多