2017-06-20 293 views
1

我已經構建了一個程序,用於執行一些數據分析,然後將其保存爲我的桌面上的CSV。Python Pandas - 創建CSV並添加數據,而不是保存它

問題是,我的桌面的路徑有我的名字,我不會知道任何其他人使用它的路徑(即它不會工作)。

有沒有辦法打開一個新的CSV並將數據插入(並讓它們保存),而不是程序保存它?

我的代碼是:

import pandas as pd 
import pyodbc 

d=[] 

key1 = raw_input('enter a keyword to search for: ') 
key2 = raw_input('enter another keyword to search for: ') 


conn = pyodbc.connect('DSN=QueryBuilder') 
cursor = conn.cursor() 

stringQ ="SELECT GrantInformation.GrantRefNumber, GrantInformation.PIName, GrantInformation.Call, GrantInformation.RoutingClassification, GrantInformation.GrantCategory, GrantInformation.AuthorisationDate, GrantInformation.HoldingOrganisationName, GrantInformation.StatusGeneral, GrantInformation.GrantTitle, GrantSummary.Summary, GrantDates.ActualStartDate, GrantDates.ActualEndDate, GrantInformation.TotalGrantValue FROM (GrantInformation LEFT JOIN GrantSummary ON GrantInformation.GrantRefNumber = GrantSummary.GrantRefNumber) LEFT JOIN GrantDates ON GrantInformation.GrantRefNumber = GrantDates.GrantRefNumber WHERE (((GrantInformation.AuthorisationDate)>='2005/4/1') AND ((GrantInformation.StatusGeneral) Like '%auth%') AND ((GrantInformation.GrantTitle) Like '%{}%'AND (GrantInformation.TransferInd)= 'false' OR (GrantInformation.GrantTitle) Like '%{}%') AND ((GrantInformation.TransferInd)= 'false')) OR (((GrantInformation.AuthorisationDate)>='2005/4/1') AND ((GrantInformation.StatusGeneral) Like '%auth%') AND ((GrantSummary.Summary) Like '%{}%'AND (GrantInformation.TransferInd)= 'false' OR (GrantSummary.Summary) Like '%{}%' AND (GrantInformation.TransferInd)= 'false'));".format(key1,key2,key1,key2) 

cursor.execute(stringQ) 

rows = cursor.fetchall() 



for row in rows: 
    d.append({'GrantRefNumber':row[0],'Call':row[2],'Classification':row[3],'Grant Category':row[4],'Authorisation Date':row[5],'Organisation':row[6],'Status General':row[7],'Grant Title':row[8],'Summary':row[9],'Start Date':row[10],'End Date':row[11],'Total Value':row[12]}) 

df = pd.DataFrame(d) 
new_df = df[['GrantRefNumber','Grant Title','Organisation','Call','Grant Category','Authorisation Date','Status General','Total Value','Classification','Start Date','End Date','Summary']] 
new_df.to_csv("C:/Users/nicholas/Desktop/data.csv", header=True, index=False, encoding='utf-8') 

回答

2

您可以使用動態路徑:

或者保存到當前工作目錄:

new_df.to_csv("data.csv", header=True, index=False, encoding='utf-8') 

或使用os.getcwd()控制目錄:

import os 
new_df.to_csv(os.getcwd()+"data.csv", header=True, index=False, encoding='utf-8') 
+1

Awesom e,謝謝你! :)......沒有意識到這很簡單 – ScoutEU

相關問題