我有一个.dat文件,我首先要将其转换为.csv文件,然后根据时间绘制一些行,我的脚本如下:
import pandas as pd
import numpy as np
from sys import argv
from pylab import *
import csv
script, filename = argv
txt = open(filename)
print "Here's your file %r:" % filename
print txt.read()
# read flash.dat to a list of lists
datContent = [i.strip().split() for i in open("./flash.dat").readlines()]
# write it as a new CSV file
with open("./flash.csv", "wb") as f:
writer = csv.writer(f)
writer.writerows(datContent)
def your_func(row):
return (row['global_beta'])
columns_to_keep = ['#time', 'global_beta', 'max_dens', 'max_temp', 'dens@max_temp']
dataframe = pd.read_csv("./flash.csv", usecols=columns_to_keep)
dataframe['Nuclear_Burning'] = dataframe.apply(your_func, axis=1)
pd.set_option('display.height', 1000)
pd.set_option('display.max_rows', 1000)
pd.set_option('display.max_columns', 500)
pd.set_option('display.width', 1000)
dataframe.plot(x='#time', 'Nuclear_Burning', style='r')
print dataframe
show()
我用python csv_flash_dat_file.py flash.dat
执行了脚本并收到以下错误:
File "csv_flash_dat_file.py", line 46
dataframe.plot(x='#time', 'Nuclear_Burning', style='r')
SyntaxError: non-keyword arg after keyword arg
我没有看到找出错误的明显原因,请帮我解决这个问题。
答案 0 :(得分:4)
这就是它所说的。您不能在关键字参数后传递非关键字参数。如果你有类似x ='#time'的东西,那就是一个关键字参数,所有这些都必须在参数列表的末尾。
答案 1 :(得分:4)
参数'Nuclear_Burning'遵循关键字参数x
。一旦开始在参数列表中使用关键字,就必须继续使用关键字参数。