ParserWarning和将来的警告Python错误

时间:2019-10-18 14:45:21

标签: python pandas

我正在尝试运行python代码来重新排列一些文件:

import glob
import pandas as pd
import numpy as np
files = glob.glob('*.txt')
result = pd.DataFrame()
for file in files:
    df = pd.read_csv(file,delimiter='  ')
    current_col = df.columns[0]
    df.reset_index(inplace=True)
    df.set_index(current_col,inplace=True)
    df.index.name = 'index'
    df.rename(columns={'index':current_col}, inplace=True)
    result = pd.concat([result,df],axis=1)

但是出现此错误:

  
    

file4.py:9:ParserWarning:回退到“ python”引擎,因为“ c”引擎不支持正则表达式分隔符(分隔符>     1个与'\ s +'不同的字符被解释为regex);您可以     通过指定engine ='python'避免此警告。 df =     pd.read_csv(file,delimiter ='')file4.py:15:FutureWarning:排序     因为非串联轴未对齐。的未来版本     熊猫默认更改为不排序。     要接受将来的行为,请传递“ sort = False”。     要保留当前行为并消除警告,请通过     'sort = True'。       结果= pd.concat([结果,df],轴= 1)

  

因此,我尝试按照建议添加engine ='python':

import glob
import pandas as pd
import numpy as np
engine='python'
files = glob.glob('*.txt')
result = pd.DataFrame()
for file in files:
    df = pd.read_csv(file,delimiter='  ')
    current_col = df.columns[0]
    df.reset_index(inplace=True)
    df.set_index(current_col,inplace=True)
    df.index.name = 'index'
    df.rename(columns={'index':current_col}, inplace=True)
    result = pd.concat([result,df],axis=1)

但这不能解决问题。而且我在以前的文章中找不到解决方法(在不同的python版本等上运行)。还有其他建议吗? 感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我尝试在加载csv时给engine ='python'参数

df = pd.read_csv("file.csv", sep = "    ", engine='python')