“ SyntaxError:无效的语法”缺少什么?

时间:2019-08-03 05:34:35

标签: python syntax-error

我刚开始使用Python 3.7,并且正在使用下面的代码在IDLE上工作,但是每次我单击“运行”并尝试创建添加多个csv的新数据框时,我都会收到INVALID SYNTAX错误和单词“ archivos”标记为:(

def CREA_DATA_FRAME_dias(archivos, fechas, ts):

    for a in range(len(archivos)):
        if a == 0:
            df, eje = CREA_DATA_FRAME(archivos[a], fechas[a], ts)
        else:
            dfN, ejeN = CREA_DATA_FRAME(archivos[a], fechas[a], ts)

            df = pd.concat([df, dfN])
            eje.extend(ejeN)

    return df, eje

这是我在命令行管理程序中键入的内容:

>>> df, eje = CREA_DATA_FRAME_dias(archivos, fechas, 5)\
 \
    archivos = ["C:/Users/Desktop/FILES/01-04-2018.csv",
            "C:/Users/Desktop/FILES/02-04-2018.csv",
            "C:/Users/Desktop/FILES/03-04-2018.csv",
            "C:/Users/Desktop/FILES/04-04-2018.csv",
            "C:/Users/Desktop/FILES/05-04-2018.csv"]
    fechas = ["2018-04-01","2018-04-02","2018-04-03","2018-04-04","2018-04-05"]```

SyntaxError: Invalid Syntax

2 个答案:

答案 0 :(得分:0)

您丢失了用分号或换行符分隔输入到shell中的语句(如果换行符使用反斜杠\,则换行符不计在内)。尝试一次输入一个语句。另外,在将它们用作参数之前,是否不应该定义archivosfechas? Python是一种命令式语言,因此语句以书面顺序执行。

答案 1 :(得分:0)

我猜你是真的意思

aaa = ["C:/Users/Desktop/FILES/01-04-2018.csv",
        "C:/Users/Desktop/FILES/02-04-2018.csv",
        "C:/Users/Desktop/FILES/03-04-2018.csv",
        "C:/Users/Desktop/FILES/04-04-2018.csv",
        "C:/Users/Desktop/FILES/05-04-2018.csv"]
fff = ["2018-04-01","2018-04-02","2018-04-03","2018-04-04","2018-04-05"]
foo, bar = CREA_DATA_FRAME_dias(aaa, fff, 5)

我已经系统地重命名了所有变量,只是为了强调def之外的变量名称与其中的变量无关,反之亦然。

可以等效地编写,而无需为参数添加显式变量;

foo, bar = CREA_DATA_FRAME_dias(
   ["C:/Users/Desktop/FILES/01-04-2018.csv",
    "C:/Users/Desktop/FILES/02-04-2018.csv",
    "C:/Users/Desktop/FILES/03-04-2018.csv",
    "C:/Users/Desktop/FILES/04-04-2018.csv",
    "C:/Users/Desktop/FILES/05-04-2018.csv"],
   ["2018-04-01","2018-04-02","2018-04-03","2018-04-04","2018-04-05"], 5)

也许可以按照以下方式重构

def CREA_DATA_FRAME_dias(fechas_y_archivos, ts):
    dfs = []
    ejes = []
    for fecha, archivo in fechas_y_archivos:
        df, eje = CREA_DATA_FRAME(archivo, fecha, ts)
        dfs.append(df)
        ejes.append(eje)
    return pd.concat(dfs), ejes

然后您将其命名为

foo, bar = CREA_DATA_FRAME_dias(
   {"2018-04-01": "C:/Users/Desktop/FILES/01-04-2018.csv",
    "2018-04-02": "C:/Users/Desktop/FILES/02-04-2018.csv",
    "2018-04-03": "C:/Users/Desktop/FILES/03-04-2018.csv",
    "2018-04-04": "C:/Users/Desktop/FILES/04-04-2018.csv",
    "2018-04-05": "C:/Users/Desktop/FILES/05-04-2018.csv"}, 5)