Excel中的值出现在pandas数据框中的nan

问题描述 投票:0回答:1

我正在处理这个 csv 文件,其中有一个列,我可以在 csv 查看器中清楚地看到它的内容:

当我在 VSC 中打印行时,我得到以下信息:

但是当我打印数据框时,我得到:

我进行了研究,发现这可能是某种

ascii non readable character
。所以我尝试删除它:

df['Partnumber'] = df['Partnumber'].replace(regex=r'[\x00-\x08\x0B-\x0C\x0E-\x1F\x7F]', value='')

但我仍然得到

NaN

python pandas dataframe extract etl
1个回答
0
投票

我对从外部合作伙伴收到的文件也有同样的经历。我的解决方案是:

df['Partnumber'] = df['Partnumber'].apply(lambda x: x.encode('ascii', 'ignore').decode('ascii'))

df['Partnumber'] = df['Partnumber'].apply(lambda x: x.encode('ascii', 'replace').decode('ascii'))

由于这种情况经常发生,我在

utils.py
文件中创建了一个函数

def csv_cleaner(text):
    return text.encode('ascii', 'ignore').decode('ascii')

我导入的

import pandas as pd
from utils import csv_cleaner

df = pd.read_csv('path_to_your_file.csv', converters={'Partnumber': csv_cleaner})
© www.soinside.com 2019 - 2024. All rights reserved.