我一直在使用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
我注意标签和空间的限制,并且,在Sublime3中工作,在这种情况下,我没有关于丢失或额外缩进的警告,所以我很惊讶看到这个错误,我猜错了可能与脚本的其他部分,也许是从sys.argv[1]
或其他地方阅读,所以您的帮助和建议将受到高度赞赏。
答案 0 :(得分:0)
IndentationError只能是缩进错误!仔细检查一下。在Sublime上,尝试查看 - >缩进 - >将缩进转换为制表符...并查看该行是否超出缩进级别。