2014-09-20 82 views
0

這是非常基本的,但我無法通過谷歌找到答案。我有一個循環將大量文本文件導入到熊貓數據框中。在Python中的多個對象上重複相同的方法

我已將名稱寫入列表。

onlyfiles = [ f for f in listdir(mypath) if isfile(join(mypath,f)) and join(mypath,f).endswith('.txt') ] 

dataframelist = [] 

for filenum in range(1,len(onlyfiles)): 
path = 'path/%s' % onlyfiles[filenum] 
print path 
name = onlyfiles[filenum][:-4] 
dsname = name 
print name 
name = pd.read_csv(path, sep = '\t') 
print '%s has been imported' % dsname 
dataframelist.append(dsname) 

我現在正在尋找在每個對象上運行to_sql()方法,但似乎無法找到正確的語法。對象已經實例化,但我的理解是,解釋者認爲我正在嘗試操作字符串對象。

然後我去熊貓的對象列表

#if a dataframe exists and has a '-customer' at the end then import 

custlist = [] 

for item in list(dataframelist): 
    if item.endswith('-customer'): 
     custlist.append(item) 

,並嘗試循環使用的方法

for dsname in range(1,5): 
    ds_to_sql = custlist[dsname] 
    print ds_to_sql 
    (ds_to_sql.to_sql('%s', engine)) % ds_to_sql 

我相信這是很基本的,我很欣賞的幫助。

+0

你怎麼試着運行'to_sql'方法? – 2014-09-20 09:37:59

+0

我已將其他代碼塊添加到問題 – user1253493 2014-09-20 10:11:35

+0

那麼什麼是custlist?它包含什麼?什麼是'ds_to_sql'每次 - 一個字符串或一個數據框對象? – 2014-09-20 10:44:08

回答

1

這個問題似乎是在這裏:

name = onlyfiles[filenum][:-4] #name = 'example.txt' 
dsname = name #dsname = name = 'example.txt' 
print name 
name = pd.read_csv(path, sep = '\t') #name = DataFrame 
print '%s has been imported' % dsname 
dataframelist.append(dsname) #'example.txt' is appended 

我已經添加了什麼happenning在每個階段的意見。在加載數據框時,你永遠不會保存它們!你只保留他們的名字在列表中。

相關問題