日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

分组每一组数据最开始添加一行,内容与每组第二行一致

發布時間:2024/1/18 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分组每一组数据最开始添加一行,内容与每组第二行一致 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

量化工作中經常遇到的一個問題:有每一天以每分鐘為顆粒度的交易數據,但是每天的9:30沒有數據,需要每一天添加一個9:30的數據,開盤和收盤價格等于9:31的數據。

因為數據量非常大,人工每天手動添加不僅耗時耗力,而且容易出錯。本文記錄下使用Excel和Python處理實際工作中這類問題的方法。

Excel處理

Excel處理思路:首先要保證每一天開始時添加一個空白行,然后空白行數據等于下一行數據內容。

  • 使用IF函數和FIND函數等將9:31的數據一行標記為1,=IF(ISERROR(FIND("09:31:00",A3)),"",1)
  • 公式無法直接查找,將biaoji這一列復制為值
  • 選中biaoji列,查找和選擇中有"定位條件"(快捷鍵Ctrl+G),選擇常量選中這一列標記為1的行
  • 選中了標記1的所有行,鼠標右擊插入整行
  • 數值填充列(close,open列)一樣邏輯:選中整列,Ctrl+G定位空值,輸入公式=C3(下一行),Ctrl+Enter全部填充
  • 時間time列進行處理

示例:
上證50分鐘漲跌幅數據

Python處理

import pandas as pddf = pd.read_excel('上證50分鐘漲跌幅數據.xlsx')df['date'] = pd.to_datetime(df['time'],format='%Y-%m-%d') from datetime import datetime df['date_'] = df['time'].apply(lambda x:datetime.strptime(x[:10],'%Y-%m-%d')) #dataframe分組并在每一組第一行前創建新行,其他字段數值填充為第一行數值,日期減少一分鐘 def augment_group(group):first_row = group.iloc[[0]]first_row['date'] -= pd.Timedelta(minutes=1) return first_row.append(group)#df['Date'] = pd.to_datetime(df['Date'], errors='coerce') (df.groupby('date_', as_index=False, group_keys=False).apply(augment_group).reset_index(drop=True))

總結

以上是生活随笔為你收集整理的分组每一组数据最开始添加一行,内容与每组第二行一致的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。