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

时间:2015-08-25 22:52:30

标签: python pandas

假设我有一个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的第一行,我想添加两个新条目(c和{{1 }})以便填充所有列。我试过了:

d

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

但两者都不起作用。任何提示?

3 个答案:

答案 0 :(得分: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 :(得分: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'

答案 2 :(得分:1)

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

print_r