我正在尝试将定义函数的输出写入熊猫数据框的新列中并将其导出到 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']