python-3.x - 从 Pandas 列中删除 unicode '\xa0'

标签 python-3.x string pandas encoding

我得到了一个 latin-1 .txt 数据集,我正在尝试清理它以使用 python 3 和 Pandas 进行正确的分析。从 html 中抓取的数据集包含许多\xa0 出现,我似乎无法使用解码、剥离、-u 替换或我在堆栈溢出时发现的任何其他方法来处理这些。我所有的尝试似乎都被 python 忽略了,仍然打印出相同的结果。由于我是数据抓取的新手,因此我可能错过了一些明显的东西,但现在我看不到前进的方向

我试图解码为 ascii,剥离为 str 然后替换,或使用 -u 子句替换,没有导致任何结果

filepath = 'meow3.txt'  
outF = open("myOutFile.txt", "a")
with open(filepath) as fp:  
    line = fp.readline()
    for line in fp:
        if line.strip().startswith(','):
            line = line.replace(',','',1)
        line = line.replace(u'\xa0', u' ')
        print(line)

df = pd.read_csv('myOutFile.txt', sep=",", encoding="latin-1", header=None, names=["Company name", "Total", "Invested since-to"])

print (df)
3sun Group, £10m ,Feb 2014 
,Abacus, £4.15m ,Aug 2013 
,Accsys Group ,£12m, Mar 2017, 
Acro ,\xa0£7.8m, Nov 2015 – Sep 2017, 
ACS Clothing, £25.3m ,Jan 2014 

这就是数据集的样子,以及为什么在我的代码中删除第一个逗号,前提是它位于列的开头。但是我尝试的所有建议答案似乎都没有帮助删除数据集的\xa0 部分,仍然给出相同的结果(见上文)。如果有人对我如何完成这项工作有任何线索,我将不胜感激,
干杯,
耶利哥

编辑:虽然我知道最好在将其转换为 txt 文件之前通过预处理来解决这个问题,但我无法访问或控制该过程,我必须使用我获得的数据。

最佳答案

我今天突然被这个问题困住了,终于找到了一个最快最简洁的解决方案。
假设您的 Pandas 数据框有一列值类似于“South\xa0Carolina”。

使用以下代码删除所有 '\xa0'。实际上我已经尝试过 .replace("\xa0","") 和 .replace(r'\xa0',r' '),但它们都不起作用。

data['col'].str.split().str.join(' ')

关于python-3.x - 从 Pandas 列中删除 unicode '\xa0',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55442727/

相关文章:

python - 测试 Flask 应用程序内部是否运行过 'flask db init'

Python Xlsxwriter 无法正常工作

python-3.x - 使用 pipenv 创建 virtualenv 时设置 python 版本

Python:如何从 gmail API 获取电子邮件的主题

python - 通过整数索引选择和修改 Pandas 数据框中的切片

c++ - 快速排序字符串数组帮助 C++

php - 在PHP中将整数转换为X个字符串

javascript - 多次插入到一个大字符串中

python - 按 Pandas 数据框分组并在每组中选择最新的

python - 如何创建具有两种不同聚合的数据透视表