将列表作为列追加到现有数据框

时间:2019-11-08 02:14:34

标签: python-3.x pandas

我有一个如下所示的熊猫数据框

df = [['A',1],
        ['A',1],
        ['A',0],
        ['A',0],
        ['A',5],
        ['B',0],
        ['B',0],
        ['B',1],
        ['B',1]] 

df = pd.DataFrame(df, columns = ['A', 'B'])
df

    A   B
0   A   1
1   A   1
2   A   0
3   A   0
4   A   5
5   B   0
6   B   0
7   B   1
8   B   1

我的物品清单如下。我想将“ new_list”添加到我的“ df”数据框中作为列C

new_list = [[1], [1], [1], [1], [5], [0], [0], [1], [1]]

3 个答案:

答案 0 :(得分:1)

尝试使用numpy方法.flatten()

df['C'] = numpy.asarray(new_list).flatten()


df

   A  B  C
0  A  1  1
1  A  1  1
2  A  0  1
3  A  0  1
4  A  5  5
5  B  0  0
6  B  0  0
7  B  1  1
8  B  1  1

答案 1 :(得分:1)

尝试像这样使用.join():

df = df.join(pd.DataFrame(new_list))

df:

    A   B   0
0   A   1   1
1   A   1   1
2   A   0   1
3   A   0   1
4   A   5   5
5   B   0   0
6   B   0   0
7   B   1   1
8   B   1   1

请注意,您需要将列表转换为数据框才能起作用。

答案 2 :(得分:0)

IIUC

df['C']=sum(new_list,[])
df
Out[8]: 
   A  B  C
0  A  1  1
1  A  1  1
2  A  0  1
3  A  0  1
4  A  5  5
5  B  0  0
6  B  0  0
7  B  1  1
8  B  1  1

import itertools
df['C']=list(itertools.chain(*new_list))