1

我正在尝试将定义函数的输出写入熊猫数据框的新列中并将其导出到 excel,但是当我打开 excel 时,我在派生列中看到空白值。

示例和使用的代码如下。

数据框名称 = 数据

Text1 我就是现代少将的楷模

Text2 我就是卡通人物的典范

import pandas as pd

import difflib

from difflib import SequenceMatcher   

original = data['Text1'].values.tolist()
edited   = data['Text2'].values.tolist() 

df = pd.DataFrame({
 'text1': original,
 'text2': edited,
})

def compare_row(row):
     text1, text2 = row

a=text1.split()
b=text2.split()

sm = SequenceMatcher(None,a,b)

for tag, i1, i2, j1, j2 in sm.get_opcodes():
      print('{:7}  a[{}:{}]   -->  b[{}:{}] {!r:>9}  --> 
{!r}'.format( tag, i1, i2, j1, j2, a[i1:i2], b[j1:j2])) 

df['Change'] = df.apply(compare_row, axis=1)

使用打印命令时收到的输出

equal a[0:7] --> b[0:7] ['I', 'am', 'the', 'very', 'model', 'of', 
'a'] -->  ['I', 'am', 'the', 'very', 'model', 'of', 'a']
replace a[7:9] --> b[7:9] ['modern', 'Major-General'] --> 
['cartoon','individual']

在此处输入图像描述

4

0 回答 0