因此,我有一张Excel工作表,我正在尝试分析两个版本之间的差异。 具体来说,我有两列; A和B。 我导入python,并使用熊猫将A和B都设置为自己的数据帧(分别称为dfA和dfB)。这里有以下内容:
key dfA dfB
1 cat bigcat
2 dog smalldog
3 mouse hugemouse
4 child normalchild
我正在尝试输出第三列,其中包含两个数据帧之间的字符串差异,因此本质上是第三数据帧/列:
ABdifference
big
small
huge
normal
我已经考虑使用difflib库,但是我认为它不会以可读的格式产生结果
我将粘贴到目前为止的代码,但实际上并没有多少,因为我已经有一段时间没有编码了,我认为这比我想象的要容易...
import pandas as pd
from pandas import ExcelWriter
import difflib
df = pd.read_excel('somesheet.xlsx', sheet_name='Diff')
first= df['A']
second = df['B']
我不喜欢使用熊猫和数据框的想法,我只是假设这是处理excel数据的最佳方法。
如果有人可以提供帮助,将不胜感激!
欢呼
答案 0 :(得分:0)
您可以将Dataframe.apply
与lambda
函数一起使用:
print(dfA, '\n')
print(dfB)
col1
0 cat
1 dog
2 mouse
3 child
col2
0 bigcat
1 smalldog
2 hugemouse
3 normalchild
使用pd.concat
组合数据框:
df_combined = pd.concat([dfA, dfB], axis=1)
print(df_combined)
col1 col2
0 cat bigcat
1 dog smalldog
2 mouse hugemouse
3 child normalchild
将.apply
与replace
一起使用
df_combined['col'] = df_combined.apply(lambda x: x['col2'].replace(x['col1'], ''), axis=1)
print(df_combined)
col1 col2 col
0 cat bigcat big
1 dog smalldog small
2 mouse hugemouse huge
3 child normalchild normal
答案 1 :(得分:0)
您可以尝试以下公式:
=IF(FIND(A2,B2)>1,LEFT(B2,FIND(A2,B2)-1),IF(FIND(B2,B2)=1,RIGHT(B2,LEN(B2)-LEN(A2))))