Python 将包含UTF-8和NULL的数据帧转换为字符串而不丢失数据

Python 将包含UTF-8和NULL的数据帧转换为字符串而不丢失数据,python,pandas,Python,Pandas,以下是我在此数据框中读取的代码: html = 'https://www.agroindustria.gob.ar/sitio/areas/ss_mercados_agropecuarios/logistica/_archivos/000023_Posici%C3%B3n%20de%20Camiones%20y%20Vagones/000010_Entrada%20de%20camiones%20y%20vagones%20a%20puertos%20semanal%20y%20mensual.

以下是我在此数据框中读取的代码:

html = 'https://www.agroindustria.gob.ar/sitio/areas/ss_mercados_agropecuarios/logistica/_archivos/000023_Posici%C3%B3n%20de%20Camiones%20y%20Vagones/000010_Entrada%20de%20camiones%20y%20vagones%20a%20puertos%20semanal%20y%20mensual.php'
url = urlopen(html)
df = pd.read_html(html, encoding = 'utf-8')
remove = []

for x in range(len(df)):
    if len(df[x]) < 10:
        remove.append(x)

for x in remove[::-1]:
    df.pop(x)

df = df[0]
所有数据都将更改,但最后四列中的值都将变为NaN。我假设这与尝试在浮点上使用str.replace有关

尝试任何类型的df[column]=df[column].astype(str)也会返回错误,如下所示:

for x in df.columns.tolist():
    for k, v in df[x].iteritems():
        if pd.isnull(v) == False and type(v) = float:
            df.loc(k, df[x]) == str(v)

解决这个问题的正确方法是什么?

您可以尝试这种正则表达式方法。我还没有测试过,但应该可以用

df = df.apply(lambda x: re.sub(r'(\d+)[.,](\d+)',r'\1\2',str(x)))

您可以尝试这种正则表达式方法。我还没有测试过,但应该可以用

df = df.apply(lambda x: re.sub(r'(\d+)[.,](\d+)',r'\1\2',str(x)))

不幸的是,这似乎破坏了数据框架不幸的是,这似乎破坏了数据框架