【发布时间】:2016-04-25 10:47:52
【问题描述】:
我目前正在编写一个脚本,其中我正在创建一个由其他 csv 文件列和我自己创建的列组成的 csv 文件 ('tableau_input.csv')。我尝试了以下代码:
def make_tableau_file(mp, current_season = 2016):
# Produces a csv file containing predicted and actual game results for the current season
# Tableau uses the contents of the file to produce visualization
game_data_filename = 'game_data' + str(current_season) + '.csv'
datetime_filename = 'datetime' + str(current_season) + '.csv'
with open('tableau_input.csv', 'wb') as writefile:
tableau_write = csv.writer(writefile)
tableau_write.writerow(['Visitor_Team', 'V_Team_PTS', 'Home_Team', 'H_Team_PTS', 'True_Result', 'Predicted_Results', 'Confidence', 'Date'])
with open(game_data_filename, 'rb') as readfile:
scores = csv.reader(readfile)
scores.next()
for score in scores:
tableau_content = score[1::]
# Append True_Result
if int(tableau_content[3]) > int(tableau_content[1]):
tableau_content.append(1)
else:
tableau_content.append(0)
# Append 'Predicted_Result' and 'Confidence'
prediction_results = mp.make_predictions(tableau_content[0], tableau_content[2])
tableau_content += list(prediction_results)
tableau_write.writerow(tableau_content)
with open(datetime_filename, 'rb') as readfile2:
days = csv.reader(readfile2)
days.next()
for day in days:
tableau_write.writerow(day)
'tableau_input.csv' 是我正在创建的文件。 'Visitor_Team'、'V_Team_PTS'、'Home_Team'、'H_Team_PTS' 列来自 'game_data_filename'(例如 tableau_content = score[1::])。 'True_Result'、'Predicted_Results'、'Confidence' 列是在第一个 for 循环中创建的列。 到目前为止,一切正常,但最后我尝试使用与上述相同的结构将来自“datetime_filename”的数据添加到“Date”列,但是当我打开“tableau_input”文件时,“Date”列中没有数据。有人能解决这个问题吗?
以下是 'game_data_filename' 和 'datetime_filename' 的 csv 文件截图(注意:日期时间值是日期时间格式)
【问题讨论】:
-
您使用调试器尝试过什么?文件是否以
readfile2中的内容打开?另外,这大概会先写所有的输入行,然后是下面的所有日期行,你不想打开两个文件,把它们附加在一起然后写吗? -
是的,我在 readfile2(日期时间值)中有内容,是的,基本上这个想法是将两个文件的内容附加到我的新 csv 文件“tableau_input”中。我没有意识到这一点。你有办法做到这一点吗?
-
文件底部有日期行吗?
-
是的,我的日期行已附加在表格底部,并且“日期”列保持为空