1

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

A B C
a b c
d e f

其中 AB 和 C 是列名。现在我有一个清单:

mylist = [1,2,3]

我想用列表替换 C 列中的 c,例如数据框扩展列表的所有值,如下所示:

A B C
a b 1
a b 2
a b 3
d e f

任何帮助,将不胜感激!

4

2 回答 2

2

我试过这个,

mylist = [1,2,3]
x=pd.DataFrame({'mylist':mylist})
x['C']='c'
res= pd.merge(df,x,on=['C'],how='left')
res['mylist']=res['mylist'].fillna(res['C'])

为了更进一步的,

del res['C']
res.rename(columns={"mylist":"C"},inplace=True)
print res

输出:

   A  B  C
0  a  b  1
1  a  b  2
2  a  b  3
3  d  e  f
于 2018-05-23T07:25:22.137 回答
1

您可以使用:

print (df)
   A  B  C
0  a  b  c
1  d  e  f
2  a  b  c
3  t  e  w
mylist = [1,2,3]

idx1 = df.index[df.C == 'c']
df = df.loc[idx1.repeat(len(mylist))].assign(C=mylist * len(idx1)).append(df[df.C != 'c'])
print (df)
   A  B  C
0  a  b  1
0  a  b  2
0  a  b  3
2  a  b  1
2  a  b  2
2  a  b  3
1  d  e  f
3  t  e  w
于 2018-05-23T07:19:44.797 回答