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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

熊貓:每 n 行重復(fù) n 次值

熊貓:每 n 行重復(fù) n 次值

炎炎設(shè)計(jì) 2021-09-14 15:47:49
我有一個(gè)包含 2563199 行的數(shù)據(jù)框??雌饋?lái)像:          index    dtm        f      0     0   00:00:00    50.065      1     1   00:00:01    50.061      2     2   00:00:02    50.058      3     3   00:00:03    50.049      4     4   00:00:04    50.044      5     5   00:00:05    50.044      6     6   00:00:06    50.042      7     7   00:00:07    50.042    ....................   2591997  2591997 23:59:57    50.009   2591998  2591998 23:59:58    50.008   2591999  2591999 23:59:59    50.006我想創(chuàng)建一個(gè)新列,它重復(fù)包含每 n 行 n 次的值。例如,如果我在第 4 行設(shè)置重復(fù)值,它將在前 4 行中重復(fù) 50.049,在接下來(lái)的 4 行中重復(fù)值 50.042,依此類推。(如果數(shù)據(jù)幀的長(zhǎng)度與確切的部門不匹配,則無(wú)關(guān)緊要)。像下面這樣:          index   dtm         f      0     0   00:00:00    50.049      1     1   00:00:01    50.049      2     2   00:00:02    50.049                3     3   00:00:03    50.049      4     4   00:00:04    50.042      5     5   00:00:05    50.042      6     6   00:00:06    50.042      7     7   00:00:07    50.042我每 86400 行就嘗試一次:arr = np.arange(len(df)) // 86400for x in arr:    df['value']=df['f'].iloc[x+86400]任何的想法?謝謝你!
查看完整描述

2 回答

?
蠱毒傳說(shuō)

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超3個(gè)贊

使用numpy和數(shù)組切片


import numpy as np


n = 4

df['fnew'] = np.concatenate([np.repeat(df.f.values[n-1::n], n),

                             np.repeat(np.NaN, len(df)%n)])

輸出:

n=3

   index       dtm       f    fnew

0      0  00:00:00  50.065  50.058

1      1  00:00:01  50.061  50.058

2      2  00:00:02  50.058  50.058

3      3  00:00:03  50.049  50.044

4      4  00:00:04  50.044  50.044

5      5  00:00:05  50.044  50.044

6      6  00:00:06  50.042     NaN

7      7  00:00:07  50.042     NaN


n = 4

   index       dtm       f    fnew

0      0  00:00:00  50.065  50.049

1      1  00:00:01  50.061  50.049

2      2  00:00:02  50.058  50.049

3      3  00:00:03  50.049  50.049

4      4  00:00:04  50.044  50.042

5      5  00:00:05  50.044  50.042

6      6  00:00:06  50.042  50.042

7      7  00:00:07  50.042  50.042


n = 5

   index       dtm       f    fnew

0      0  00:00:00  50.065  50.044

1      1  00:00:01  50.061  50.044

2      2  00:00:02  50.058  50.044

3      3  00:00:03  50.049  50.044

4      4  00:00:04  50.044  50.044

5      5  00:00:05  50.044     NaN

6      6  00:00:06  50.042     NaN

7      7  00:00:07  50.042     NaN


查看完整回答
反對(duì) 回復(fù) 2021-09-14
?
偶然的你

TA貢獻(xiàn)1841條經(jīng)驗(yàn) 獲得超3個(gè)贊

這是一種避免循環(huán)的方法df。


首先設(shè)置 a n,并生成一個(gè)包含現(xiàn)有索引的列表,不包括將用于重復(fù) 中值的行f:


n=4

ix = [x for i, x in enumerate(df.index.values) if (i + 1) % n != 0]

print(ix)

[0, 1, 2, 4, 5, 6]

現(xiàn)在將這些值設(shè)置為np.nan并使用bfill:


df.loc[ix, 'f'] = np.nan

df['f'] = df.f.bfill()


print(df)

    index       dtm       f

0      0  00:00:00  50.049

1      1  00:00:01  50.049

2      2  00:00:02  50.049

3      3  00:00:03  50.049

4      4  00:00:04  50.042

5      5  00:00:05  50.042

6      6  00:00:06  50.042

7      7  00:00:07  50.042


查看完整回答
反對(duì) 回復(fù) 2021-09-14
  • 2 回答
  • 0 關(guān)注
  • 210 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)