Разверните pandas dataframe, заменив значение ячейки списком - PullRequest
0 голосов
/ 23 мая 2018

У меня есть кадр данных pandas, подобный приведенному ниже:

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

Любая помощьбудет оценено!

Ответы [ 2 ]

0 голосов
/ 23 мая 2018

Я пробовал это,

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
0 голосов
/ 23 мая 2018

Вы можете использовать:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...