Sublime3:从文件中读取数据帧,其名称由命令行参数给出

Sublime3: read dataframe from file, which name given by command line argument

我一直在使用 ipython 笔记本,但现在我应该传递给脚本 .py。在 ipython 中看似容易的事情在编写普通脚本时变得更加困难(如果我误解了什么,请纠正我)。 因此,例如我需要从文件中读取数据帧(然后使用该数据帧执行一些操作),我想在命令行中将其名称作为参数提供:

python myfile.py filename.csv

为此我编写了以下脚本:

import pandas as pd
import numpy as np
import datetime
import time
import sys

def read_file(filesrc):
    df = pd.read_csv(filesrc, 
                     sep= '\t', 
                     names=['id', 'date', 'name', 'age'], 
                     parse_dates=['date'], 
                     infer_datetime_format=True)
    print "Reading file..."
    df1 = (df.drop(['id'], 1)
             .sort_index(by=['date'], ascending=True)
             .reset_index()
             .drop('index', 1))
    return df1.to_csv('just_df.csv')

def main():
    filesrc = sys.argv[1]
    read_file(filesrc)

if __name__ == '__main__':
    main()

但我总是报错:

  df1 = df.drop(['id'], 1).sort_index(by=['date'], ascending=True).reset_index().drop('index', 1)     
                                                                                            ^
    IndentationError: unindent does not match any outer indentation level

我注意制表符和 space 缩进,而且,在 Sublime3 中工作,在这种情况下我没有关于丢失或额外缩进的警告,所以我很惊讶看到这个错误,我猜脚本的其他部分可能有问题,可能是从 sys.argv[1] 或其他地方读取的,因此非常感谢您的帮助和建议。

IndentationError只能是缩进错误!仔细检查一下。在 Sublime 上,尝试 View -> Indentation -> Convert indentation to tab... 并查看该行是否超出缩进级别。