我一直在尝试在Pandas中合并字符串;尽管excel文件中的内容完全相同,但大多数都可以,但是有些不匹配。
data looks like:
File Name: company 1.pdf; Security Name: Series A Common
File Name: company 2.pdf; Security Name: Series B Common
ra1['File Name'] = ra1['File Name'].astype(str)
ra1['Security Name'] = ra1['Security Name'].astype(str)
ra1['Security Name 2'] = ra1['Security Name'].str.replace(" ","")
ra2['File Name'] = ra2['File Name'].astype(str)
ra2['Security Name'] = ra2['Security Name'].astype(str)
ra2['Security Name 2'] = ra2['Security Name'].str.replace(" ","")
x = pd.merge(ra1,ra2,on=['File Name','Security Name 2'],how='left')
我注意到,除去空格后,第一个数据集中的某些系列名称仍然有一个空格,而第二个数据集中的等效名称似乎没有空格,因此合并失败。例如,Stock ACommon与StockACommon。 dtypes说对象。这些在excel文件中;尝试在excel中将列更改为文本,但没有区别。
答案 0 :(得分:0)
只需添加为答案,
匹配所有{em> 空白,例如a b c
,我们可以利用正则表达式
\s+
匹配任何空白字符(等于[\r\n\t\f\v ])
+
量词-在一次和无限次之间进行匹配,并尽可能地多次匹配,并根据需要进行回馈(贪婪)ra['Security Name'] = ra['Security Name'].str.replace('(\s+)','')
out:
Security Name
abc
regex演示: