簡體   English   中英

如何使用循環更改 34 個數據幀中的所有標題?

[英]How do I change all the headers in 34 dataframes with a loop?

我已成功提取 31 個“*.csv”文件並使用 JupyterLab 創建了 31 個數據框。 我能夠根據需要調整一個數據幀中的標題,但我害怕必須單獨應用。 隨着我的數據庫的增長,調整每個 header 將變得非常乏味。

filenames = glob.glob('*.csv')
dataframes = [pd.read_csv(f) for f in filenames]
tlt = 'tlt.csv'
qqq = 'qqq.csv'
gld = 'gld.csv'
slv = 'slv.csv'

等等等等

代碼:

df_gold = pd.read_csv(gold, skiprows=[0], header=None)
header = df_gold.iloc[0]
df_gold = df_gold[1:]
df_gold.rename(columns = header)
df_gold.rename(columns={0:'Date', 1:'Open', 2:'High',3:'Low',4:'Close',5:'Volume'}, inplace=True)
print(df_gold.columns)

Output:

Index(['Date', 'Open', 'High', 'Low', 'Close', 'Volume'], dtype='object')

我的問題是我想使用循環將標頭中的更改應用於該程序使用的所有數據幀。

TYIA

由於看起來所有數據框都具有相同的列...按照您的建議進行循環:

colnames = {0:'Date', 1:'Open', 2:'High', 3:'Low', 4:'Close'}
for i, df in enumerate(dataframes):
    dataframes[i] = df.drop(0, axis=0).rename(columns=colnames)

如果每個 CSV 文件都有相同的列,那么您可以在read_csv() function 中處理列命名:

filenames = glob.glob('*.csv')
col_names = ['Date', 'Open', 'High', 'Low', 'Close', 'Volume']
dataframes = [
    pd.read_csv(f, header=0, names=col_names)
    for f in filenames
]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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