假设我有这个数据集,我想创建一个短语列,为每个列添加一个单词,值是1 ...
SINNOUVEAU PERTETOTAL CHANGGARAN SOCLOCATIO SINISAMEDI NOMASCONDU SINIREPET
0 1 0 0 0 0 1 0
1 0 1 0 0 0 1 0
2 0 0 1 0 0 1 0
如果设置为1,则这是每列的短语值的数据框。
col phr
0 SINNOUVEAU sinistre nouveau
1 PERTETOTAL perte totale
2 CHANGGARAN changement garantie
3 SOCLOCATIO societe location
4 SINISAMEDI samedi
5 NOMASCONDU nom different
6 SINIREPET sinistre repetitif
因此,对于上述数据框,这是我期望的结果:
SINNOUVEAU PERTETOTAL CHANGGARAN SOCLOCATIO SINISAMEDI NOMASCONDU SINIREPET Phrase
0 1 0 0 0 0 1 0 sinistre nouveau, nom different
1 0 1 0 0 0 1 0 perte totale, nom different
2 0 0 1 0 0 1 0 changement garantie, nom different
答案 0 :(得分:4)
假设第一个数据集命名为df
,第二个数据集命名为df1
:
我们采用df.dot()
的帮助,如下所示:
m=df.rename(columns=df1.set_index('col')['phr'].to_dict())
df['Phrase']=m.dot(m.columns+',').str.rstrip(',')
print(df)
SINNOUVEAU PERTETOTAL CHANGGARAN SOCLOCATIO SINISAMEDI NOMASCONDU \
0 1 0 0 0 0 1
1 0 1 0 0 0 1
2 0 0 1 0 0 1
SINIREPET Phrase
0 0 sinistre nouveau,nom different
1 0 perte totale,nom different
2 0 changement garantie,nom different
答案 1 :(得分:1)
IIUC
s=df.dot(df.columns.map(df1.set_index('col').phr)+',').str[:-1]
s
0 sinistrenouveau,nomdifferent
1 pertetotale,nomdifferent
2 changementgarantie,nomdifferent
dtype: object
df['Phr']=s