簡體   English   中英

Python:合並多個csv文件時需要新建一列

[英]Python: need to create a new column when merging multiple csv files

提前感謝您的幫助。 多部分問題

我有包含多個股票定價信息的 zip 文件。 當前格式是標題行是:

ticker,date,open,high,low,close,vol

第一行的例子是

AAPL,201906030900,176.32,176.32,176.24,176.29,2247

所需格式:

標題

ticker,date,time,open,high,low,close,vol

和數據

AAPL,20190603,09:00,176.32,176.32,176.24,176.29,2247

其中添加了時間列,並用日期行的最后 4 位數字填充該列,中間有一個冒號,最后 4 位數字從日期數據列中刪除。

每個文件中每只股票大約有 400 行數據,因此每一行都需要轉換。

我無法在這里或網絡上的其他地方找到我能理解如何完成我想要做的事情的答案。

嘗試以下操作,使用pandas
數據.csv

ticker,date,open,high,low,close,vol
AAPL,201906030900,176.32,176.32,176.24,176.29,2247
ABCD,202002211000,220.97,217.38,221.43,219.82,8544

代碼

import pandas as pd

df = pd.read_csv('data.csv')

# print(df)

df['time'] = df['date'].apply(lambda x: f'{str(x)[-4:-2]}:{str(x)[-2:]}')
df['date'] = df['date'].apply(lambda x: str(x)[:-4])

cols = df.columns.to_list()
cols = cols[:2] + cols[-1:] + cols[2:-1]

df = df[cols]

# print(df)

df.to_csv('out.csv', index=False)

輸出.csv

ticker,date,time,open,high,low,close,vol
AAPL,20190603,09:00,176.32,176.32,176.24,176.29,2247
ABCD,20200221,10:00,220.97,217.38,221.43,219.82,8544

您可以使用相同的代碼循環多個文件。

暫無
暫無

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

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