[英]Iterate over list (2 dataframes in 1 list)
我同時導入 2 個數據框:
import pandas as pd
import numpy as np
import time
import glob
import os
msci_folder = 'C:/Users/Mike/Desktop/docs'
mscifile = glob.glob(msci_folder + "/*.csv")
dfs = []
for file in mscifile:
df = pd.read_csv(file)
dfs.append(df)
現在我想應用我用於每個單獨數據幀的代碼,但出現錯誤:
AttributeError: 'list' 對象沒有屬性 'loc'
我嘗試:
for i, df in enumerate(dfs):
dfs = dfs.loc[dfs['URI'] == '/ID']
dfs.TIMESTAMP = dfs.TIMESTAMP.apply(lambda x: '%.3f' % x)
dfs.insert(0, 'Date', 0)
dfs['Date'] = [x[:8] for x in dfs['TIMESTAMP']]
dfs.to_csv('C:/Users/Mike/Desktop/docs/test.csv', index=False)
在你的第二個for
循環中:
for i, df in enumerate(dfs):
dfs = dfs.loc[dfs['URI'] == '/ID']
dfs.TIMESTAMP = dfs.TIMESTAMP.apply(lambda x: '%.3f' % x)
dfs.insert(0, 'Date', 0)
dfs['Date'] = [x[:8] for x in dfs['TIMESTAMP']]
dfs.to_csv('C:/Users/Mike/Desktop/docs/test.csv', index=False)
您使用了dfs
,這是您創建的初始列表,因此出現錯誤。 您應該使用df
更改for
循環中的每個dfs
實例。
for i, df in enumerate(dfs):
# dfs = dfs.loc[dfs['URI'] == '/ID']
df = df.loc[df['URI'] == '/ID']
# ... and so on
# save to different files
df.to_csv(f'C:/Users/Mike/Desktop/docs/test_{i}.csv', index=False)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.