2
我在python中遍歷50個文件,並將它們分別轉換爲熊貓數據框。然後,從每個數據幀中,我根據原始數據幀中特定字段中的值創建三個新數據幀。這三個新框架具有新名稱,其中包括它們被過濾的值。使用全局變量()調用熊貓數據框內部For循環
它的作品,耶!我得到我所有的數據幀!
的問題是,我使用的是一個全球性的()調用創建這些數據幀,我不知道如何在不明確鍵入每個單獨的數據幀名到籽粒訪問它們。
爲什麼我想這樣做,你可能會問?
嗯,我想抓住所有的數據幀爲此在「CD」,例如,和append(UNION ALL),他們進入最終的數據幀。我不想明確地要求全部50個。我想遍歷數據框的列表來完成這個任務。
有關如何完成此操作或重寫代碼的任何建議?
我不熟悉iPython這些更密集的流程,所以改變一切。
filelist = os.listdir()
sum_list = ['CAKE', 'TWINKIES', 'DOUGHNUTS', 'CUPCAKES']
for f in filelist:
state = re.match('((\w+){2})\_', f)
state_df = str(state.group(1)) + '_df'
data = pd.read_csv(f, low_memory = False)
df = pd.DataFrame(data)
for x in sum_list:
sdo = state_df + '_' + x.lower()
globals()[sdo] = pd.DataFrame(df.loc[df['summary_level'] == x])
嘿,謝謝!最終做的不是你所建議的,而是讓我以不同的方式思考這個問題。 – Audrey 2014-09-09 18:52:28
@Audrey太棒了!希望你在享受熊貓! – 2014-09-09 18:55:40