第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

創(chuàng)建新的 Pandas DataFrame 列,使其等于同一 DataFrame 中其他行的值

創(chuàng)建新的 Pandas DataFrame 列,使其等于同一 DataFrame 中其他行的值

BIG陽 2024-01-24 16:15:06
我對 python 很陌生,對 Pandas 也很陌生。我查閱了 Pandas 文檔并嘗試了多種方法來解決這個問題,但沒有成功。我有一個 DateFrame,其中一列包含時間戳,另一列包含價格,例如:d = {'TimeStamp': [1603822620000, 1603822680000,1603822740000, 1603823040000,1603823100000,1603823160000,1603823220000], 'Price': [101,105,102,108,105,101,106], 'OtherData1': [1,2,3,4,5,6,7], 'OtherData2': [7,6,5,4,3,2,1]}df= pd.DataFrame(d)df       TimeStamp  Price  OtherData1  OtherData20  1603822620000    101           1           71  1603822680000    105           2           62  1603822740000    102           3           53  1603823040000    108           4           44  1603823100000    105           5           35  1603823160000    101           6           26  1603823220000    106           7           1除了感興趣的兩列之外,此 DataFrame 還具有其他列,其中的數據與問題不是特別相關(用 OtherData Cols 表示)。我想創(chuàng)建一個新專欄“Fut2Min”(未來兩分鐘的價格)??赡軙袛祿笔?,所以這個問題不能通過簡單地獲取下面2行的數據來解決。我正在嘗試找到一種方法,使每行中的 Fut2Min Col 的值 == 時間戳所在行的價格 + 120000(未來 2 分鐘)或 null(或 NAN 或 w/e)(如果相應)時間戳不存在。對于示例數據,DF 應更新為:(用于模擬所需結果的代碼)d = {'TimeStamp': [1603822620000, 1603822680000, 1603822740000, 1603822800000, 1603823040000,1603823100000,1603823160000,1603823220000],      'Price': [101,105,102,108,105,101,106,111],      'OtherData1': [1,2,3,4,5,6,7,8],      'OtherData2': [8,7,6,5,4,3,2,1],    'Fut2Min':[102,108,'NaN','NaN',106,111,'NaN','NaN']}df= pd.DataFrame(d)df       TimeStamp  Price  OtherData1  OtherData2 Fut2Min0  1603822620000    101           1           8     1021  1603822680000    105           2           7     1082  1603822740000    102           3           6     NaN3  1603822800000    108           4           5     NaN4  1603823040000    105           5           4     1065  1603823100000    101           6           3     1116  1603823160000    106           7           2     NaN7  1603823220000    111           8           1     NaN
查看完整描述

1 回答

?
烙印99

TA貢獻1829條經驗 獲得超13個贊

假設數據框是:


? ? ? ?TimeStamp? Price? OtherData1? OtherData2? Fut2Min

0? 1603822620000? ? 101? ? ? ? ? ?1? ? ? ? ? ?8? ? ? ? 0

1? 1603822680000? ? 105? ? ? ? ? ?2? ? ? ? ? ?7? ? ? ? 0

2? 1603822740000? ? 102? ? ? ? ? ?3? ? ? ? ? ?6? ? ? ? 0

3? 1603822800000? ? 108? ? ? ? ? ?4? ? ? ? ? ?5? ? ? ? 0

4? 1603823040000? ? 105? ? ? ? ? ?5? ? ? ? ? ?4? ? ? ? 0

5? 1603823100000? ? 101? ? ? ? ? ?6? ? ? ? ? ?3? ? ? ? 0

6? 1603823160000? ? 106? ? ? ? ? ?7? ? ? ? ? ?2? ? ? ? 0

7? 1603823220000? ? 111? ? ? ? ? ?8? ? ? ? ? ?1? ? ? ? 0

然后,如果您使用pandas.DataFrame.apply,則沿列軸:


import pandas as pd


def Fut2MinFunc(row):

? ? futTimeStamp = row.TimeStamp + 120000

? ? if (futTimeStamp in df.TimeStamp.values):

? ? ? ? return df.loc[df['TimeStamp'] == futTimeStamp, 'Price'].iloc[0]

? ? else:

? ? ? ? return None


df['Fut2Min'] = df.apply(Fut2MinFunc, axis = 1)

您將得到您所描述的內容:


? ? ? ?TimeStamp? Price? OtherData1? OtherData2? Fut2Min

0? 1603822620000? ? 101? ? ? ? ? ?1? ? ? ? ? ?8? ? 102.0

1? 1603822680000? ? 105? ? ? ? ? ?2? ? ? ? ? ?7? ? 108.0

2? 1603822740000? ? 102? ? ? ? ? ?3? ? ? ? ? ?6? ? ? NaN

3? 1603822800000? ? 108? ? ? ? ? ?4? ? ? ? ? ?5? ? ? NaN

4? 1603823040000? ? 105? ? ? ? ? ?5? ? ? ? ? ?4? ? 106.0

5? 1603823100000? ? 101? ? ? ? ? ?6? ? ? ? ? ?3? ? 111.0

6? 1603823160000? ? 106? ? ? ? ? ?7? ? ? ? ? ?2? ? ? NaN

7? 1603823220000? ? 111? ? ? ? ? ?8? ? ? ? ? ?1? ? ? NaN


查看完整回答
反對 回復 2024-01-24
  • 1 回答
  • 0 關注
  • 186 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號