熊猫使用列表添加列

安克

我有一个像这样的熊猫数据框:

col1 col2 col3
 1    8    6
 2    9    5
 5    3    9

现在,我想为数据框的每一行添加一个新列,并使用列表中的值。所以,如果我的清单是这样的:

lst = ["a", "b","c"]

然后我希望最终的数据帧是这样的:

col1 col2 col3 name
 1    8    6    a
 1    8    6    b
 1    8    6    c
 2    9    5    a
 2    9    5    b
 2    9    5    c
 5    3    9    a
 5    3    9    b
 5    3    9    c
耶斯列尔

第一个想法是Index.repeat按列表的长度使用,然后在新列后添加numpy.tile

lst = ["a", "b","c"]

df1 = (df.loc[df.index.repeat(len(lst))]
             .assign(name=np.tile(lst, len(df)))
             .reset_index(drop=True))
print (df1)
   col1  col2  col3 name
0     1     8     6    a
1     1     8     6    b
2     1     8     6    c
3     2     9     5    a
4     2     9     5    b
5     2     9     5    c
6     5     3     9    a
7     5     3     9    b
8     5     3     9    c

cross joinDataFramefrom一起使用list

df1 = df.assign(a=1).merge(pd.DataFrame({'name':lst, 'a':1}), on='a').drop('a', axis=1)
print (df1)
   col1  col2  col3 name
0     1     8     6    a
1     1     8     6    b
2     1     8     6    c
3     2     9     5    a
4     2     9     5    b
5     2     9     5    c
6     5     3     9    a
7     5     3     9    b
8     5     3     9    c

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章