簡體   English   中英

迭代列表(1 個列表中的 2 個數據框)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM