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