首页 文章

如何在另一行的pandas数据框中创建行以及新数据

提问于
浏览
1

假设我有一个pandas数据帧, df1

import pandas as pd    
df1col = ['col1', 'col2']
df1 = pd.DataFrame(columns=df1col)
df1.loc[0] = 'a', 'b'

我的目标是创建 df2 ,其中 df2 的前两列与 df1 中的列相同 . 我使用列的名称并附加 col3col4 的列名称(有更好的方法吗?)并创建数据框, df2

df2col = df1col
df2col.append('col3')
df2col.append('col4')
df2 = pd.DataFrame(columns=df2col)

现在我只想将 df1 的第一行(也是唯一一行)添加到 df2 的第一行 . 我想添加两个新条目( cd ),以便填充所有列 . 我试过了:

df2.loc[0] = df1.loc[0], 'c', 'd'

df2.loc[0] = [df1.loc[0], 'c', 'd']

但都不起作用 . 任何提示?

3 回答

  • 1

    您可以提取列表,然后为其添加“c”和“d”:

    df2.loc[0] = df1.loc[0].tolist() + ['c', 'd']
    
    >>> df2
      col1 col2 col3 col4
    0    a    b    c    d
    
  • 1

    问题是df1.loc [0]是一个对象,而不是任何结构之外的一对值 . 您可以通过从df1.loc [0]中提取值并使用'c'和'd'扩展它们来修复它,如下所示:

    row1 = [val for val in df1.loc[0]]
    row1.extend(['c', 'd'])
    df2.loc[0] = row1
    
  • 1

    您可以复制数据框并向数据框添加列,就像字典一样 .

    import pandas as pd    
    df1col = ['col1', 'col2']
    df1 = pd.DataFrame(columns=df1col)
    df1.loc[0] = 'a', 'b'
    df2 = df1.copy()
    df2['col3'] = 'c'
    df2['col4'] = 'd'
    

相关问题