Python 列和行与另一列中的Common值连接
在下面提到的表格中,我想将列Python 列和行与另一列中的Common值连接,python,pandas,pandas-groupby,Python,Pandas,Pandas Groupby,在下面提到的表格中,我想将列Tri_gram\u sents和Value连接在一起,然后将列句子中编号相同的所有行连接在一起 Tri_gram_sents Value sentence (('<s>', '<s>'), 'ABC') 0.161681 1 (('<s>', 'ABC'), 'ABC') 0.472973 1
Tri_gram\u sents
和Value
连接在一起,然后将列句子中编号相同的所有行连接在一起
Tri_gram_sents Value sentence
(('<s>', '<s>'), 'ABC') 0.161681 1
(('<s>', 'ABC'), 'ABC') 0.472973 1
(('ABC', 'ABC'), 'ABC') 0.305732 1
(('ABC', 'ABC'), 'ABC') 0.005655 1
(('ABC', 'ABC'), '</s>') 0.434783 1
(('ABC', '</s>'), '</s>') 0.008547 1
(('<s>', '<s>'), 'DEF') 0.111111 2
(('<s>', 'DEF'), 'DEF') 0.039474 2
(('DEF', 'DEF'), 'DEF') 0.207317 2
(('DEF', 'DEF'), 'DEF') 0.074803 2
(('DEF', 'DEF'), '</s>') 0.037940 2
(('DEF', '</s>'), '</s>') 0.033163 2
(('<s>', '<s>'), 'GHI') 0.250000 3
(('<s>', 'GHI'), 'GHI') 0.103316 3
(('GHI', 'GHI'), 'GHI') 0.024155 3
(('GHI', 'GHI'), '</s>') 0.028302 3
(('GHI', '</s>'), '</s>') 0.117647 3 `
Tri_gram_sents Value语句
("","ABC")0.161681 1
((“‘ABC’,‘ABC’)0.472973 1
((‘ABC’、‘ABC’、‘ABC’)0.305732 1
((‘ABC’、‘ABC’、‘ABC’)0.005655 1
("ABC","ABC","0.434783 1
((‘ABC’,‘),’)0.008547 1
(“,”和“DEF”)0.1111112
((“DEF”),“DEF”)0.039474 2
((‘DEF’、‘DEF’、‘DEF’)0.207317 2
((‘DEF’、‘DEF’、‘DEF’)0.074803 2
(('DEF','DEF'),'')0.037940 2
((‘DEF’,“”),“”)0.033163 2
((''),“GHI”)0.250000 3
((“GHI”),“GHI”)0.103316 3
((‘GHI’、‘GHI’、‘GHI’)0.024155 3
((‘GHI’,‘GHI’,“”)0.028302 3
("GHI","")0.117647 3`
对于上面的一组行,我将在另一个表中总共获得3行,我的预期输出如下所示:
(('<s>', '<s>'), 'ABC') 0.161681 (('<s>', 'ABC'), 'ABC') 0.472973 (('ABC', 'ABC'), 'ABC') 0.305732 (('ABC', 'ABC'), 'ABC') 0.005655 (('ABC', 'ABC'), '</s>') 0.434783 (('ABC', '</s>'), '</s>') 0.008547
(('<s>', '<s>'), 'DEF') 0.111111 (('<s>', 'DEF'), 'DEF') 0.039474 (('DEF', 'DEF'), 'DEF') 0.207317 (('DEF', 'DEF'), 'DEF') 0.074803 (('DEF', 'DEF'), '</s>') 0.037940 (('DEF', '</s>'), '</s>') 0.033163
(('<s>', '<s>'), 'GHI') 0.250000 (('<s>', 'GHI'), 'GHI') 0.103316 (('GHI', 'GHI'), 'GHI') 0.024155 (('GHI', 'GHI'), '</s>') 0.028302 (('GHI', '</s>'), '</s>') 0.117647
(('','','ABC')0.161681(('','ABC'),'ABC')0.472973(('ABC','ABC'),'ABC')0.305732('ABC','ABC'),'ABC')0.005655('ABC','ABC'),'')0.434783('ABC','ABC'),'')0.008547
("""""""定义")0.111111(""定义"),"定义"0.039474(""定义"),"定义"0.207317
(""","GHI")0.250000("""GHI","GHI"0.103316
您可以使用groupby
和join
创建预期的输出。一种方法是从列Tri\u gram\u sents
和Value
创建一个列以加入,然后agg
此列:
df['to_join'] = df['Tri_gram_sents'] + ' ' + df['Value'].astype(str)
ser_output = df.groupby('sentence')['to_join'].agg(' '.join)
或者,您可以在一行中完成所有操作,而无需使用apply
创建列:
ser_output = (df.groupby('sentence').apply(
lambda df_g: ' '.join(df_g['Tri_gram_sents']+' '+df_g['Value'].astype(str))))
您将获得序列输出
:
sentence
1 (('<s>', '<s>'), 'ABC') 0.161681 (('<s>', 'ABC...
2 (('<s>', '<s>'), 'DEF') 0.111111 (('<s>', 'DEF...
...
句子
1(“,”ABC)0.161681(“,”ABC。。。
2(“”,,“DEF”)0.111111(“”,,“DEF…”。。。
...
其中第一个元素看起来与预期一致:
"(('<s>', '<s>'), 'ABC') 0.161681 (('<s>', 'ABC'), 'ABC') 0.472973 (('ABC', 'ABC'), 'ABC') 0.305732 (('ABC', 'ABC'), 'ABC') 0.005655 (('ABC', 'ABC'), '</s>') 0.434783 (('ABC', '</s>'), '</s>') 0.008547"
“((”),“ABC”)0.161681((”,“ABC”),“ABC”)0.472973((“ABC”,“ABC”),“ABC”)0.305732((“ABC”,“ABC”),“ABC”)0.005655((“ABC”,“ABC”),”)0.434783((“ABC”,“ABC”),“ABC”)0.008547”
那问题呢?你的问题是什么?把O/P放在下面的表格(“,”,“ABC”)0.161681((“ABC”),“ABC”)0.472973((“ABC”,“ABC”),“ABC”)0.305732((“ABC”,“ABC”),“ABC”)0.005655((“ABC”,“ABC”),“ABC”)0.434783((“ABC”,“ABC”),“ABC”)0.008547((“ABC”),“ABC”),“DEF”)0.11174((“DEF”,“DEF”,“DEF”),“DEF”)0.7317("定义","定义","定义"0.074803","定义","定义","定义","定义"0.037940","定义","定义","定义"0.033163",""","GHI"GHI"0