在特定索引后将值添加到数据框列

时间:2019-05-02 06:39:17

标签: python pandas list dataframe

我有一个这样的数据框:

No     Data    Sentence
32      xxx      yyyy
45      hhh      uuuu
 .       .        . 
 .       .        . 
8726    aaa      bbbb  

No列无序的地方,现在我有x这是一个句子列表,我想将该列表添加到上一个索引之后的Sentence列中。因此,我的新数据框将如下所示:

No     Data    Sentence
32      xxx      yyyy
45      hhh      uuuu
    .       .         . 
    .       .         . 
8726    aaa      bbbb
NaN     NaN      x[0]
NaN     NaN      x[1]
 .       .         .
 .       .         .
NaN     NaN      x[n]

我知道我们可以通过分配功能直接将列表分配给列,但是它将从头开始分配列表值,我什至不知道列表的大小。有人可以帮我吗?

2 个答案:

答案 0 :(得分:1)

将句子列表转换为数据框,然后使用pd.concat

x = pd.DataFrame({'Sentence': x})
pd.concat([df,x], axis=0, ignore_index=True)

答案 1 :(得分:1)

首先将您的列表变成数据框:

listDF = pd.DataFrame(list, columns='Sentence')

然后使用pandas.DataFrame.append

extended_df = df.appned(listDF)

要测试:

创建df1:

df = pd.DataFrame([[1, 2], [3, 4]], columns=list('AB')) 

打印:

   A  B
0  1  2
1  3  4

创建df2:

df2 = pd.DataFrame([5, 6], columns=list('B'))

打印:

   B
0  5
1  6

最后:

df.append(df2)

结果:

     A  B
0  1.0  2
1  3.0  4
0  NaN  5
1  NaN  6