在熊猫数据框中合并字符串时遇到问题-编码问题?

时间:2020-01-03 23:25:46

标签: python string pandas encoding merge

我一直在尝试在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中将列更改为文本,但没有区别。

1 个答案:

答案 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演示:

https://regex101.com/r/3oyYte/1