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

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

如何根據(jù)周分離python系列中的數(shù)據(jù)以將它們繪制在周期圖中?

如何根據(jù)周分離python系列中的數(shù)據(jù)以將它們繪制在周期圖中?

不負(fù)相思意 2022-01-11 15:55:51
我在一個(gè)帶有日期和時(shí)間的系列中有五周的季節(jié)性數(shù)據(jù),我如何根據(jù)周數(shù)將其分開,例如第 1 周、第 2 周...第 5 周,以便我可以在同一張圖中繪制所有周數(shù)據(jù)。我嘗試通過找到平均值來(lái)重新采樣數(shù)據(jù)。但數(shù)據(jù)仍然是單系列。我只想在不同的數(shù)據(jù)框中根據(jù) 2019-04-02 到 2019-04-08、2019-04-08 到 2019-04-16 等周在單獨(dú)的 df 中分離數(shù)據(jù)df.open.resample('M').mean()date    pageload  day0     2019-04-02 10:48:00  -79.002023  Tue1     2019-04-02 10:49:00   33.563679  Tue2     2019-04-02 10:50:00  -76.448319  Tue3     2019-04-02 10:51:00   30.974816  Tue4     2019-04-02 10:52:00  -68.789962  Tue5     2019-04-02 10:53:00   30.593374  Tue21    2019-04-16 11:34:00   40.333445  Fri數(shù)據(jù)框按周分開。在單個(gè)圖表中繪制所有周數(shù)據(jù)。
查看完整描述

2 回答

?
慕容森

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

我不認(rèn)為你想像 Shijith 展示的那樣重新采樣。我認(rèn)為您每周都需要不同的數(shù)據(jù)框。IMO 您想為此使用groupby ( doc )。Pandas Groupby函數(shù)可用于按列或索引拆分?jǐn)?shù)據(jù)框中的數(shù)據(jù)。該方法返回一個(gè) pandas groupby 對(duì)象,該對(duì)象可用于在將組合并回來(lái)之前對(duì)組執(zhí)行操作。


在代碼片段中,我首先創(chuàng)建一個(gè)列來(lái)對(duì)數(shù)據(jù)進(jìn)行分組(即“周”列)。比我按周列對(duì)數(shù)據(jù)進(jìn)行分組。這將創(chuàng)建一個(gè) groupby 對(duì)象,其中包括一個(gè)字典,該字典具有“weeks”列的唯一值作為鍵和數(shù)據(jù)幀的索引列表,這些索引列表具有與“weeks”列相同的值作為值。這可以通過print(grps.groups)在控制臺(tái)中輸入來(lái)查看。然后我遍歷組的鍵,并通過調(diào)用get_groupgroupby 對(duì)象上的方法將每周數(shù)據(jù)幀添加到字典中。


import pandas as pd


# Make sample data

index=pd.date_range(start='2014-01-01', end='2014-1-31',freq='D')

df = pd.DataFrame({"vals":np.random.randint(-5,5,len(index))}, index=index)

df["csum"] = df.vals.cumsum()

# Add a column for weeks to enable grouping

df["weeks"] = df.index.week


# Group the data

grps = df.groupby("weeks")


# split the group into separate dataframes

df_dict = {}

for gi in grps.groups:

    df_dict[gi] = grps.get_group(gi)

我從這樣的事情開始:


            vals  csum  weeks

2014-01-01     4     4      1

2014-01-02    -5    -1      1

...

2014-01-30    -2    -9      5

2014-01-31    -5   -14      5

最終得到如下數(shù)據(jù)框


1

            vals  csum  weeks

2014-01-01     4     4      1

2014-01-02    -5    -1      1

2014-01-03    -4    -5      1

2014-01-04     4    -1      1

2014-01-05    -5    -6      1

2

            vals  csum  weeks

2014-01-06    -5   -11      2

2014-01-07     2    -9      2

2014-01-08     4    -5      2

2014-01-09    -1    -6      2

2014-01-10    -1    -7      2

2014-01-11    -3   -10      2

2014-01-12    -2   -12      2


查看完整回答
反對(duì) 回復(fù) 2022-01-11
?
子衿沉夜

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

如果您的數(shù)據(jù)框df按日期編入索引


   print(df)

                 High         Low        Open       Close    Volume   Adj Close

Date                                                                            

2019-04-01  191.679993  188.380005  191.639999  191.240005  27862000  191.240005

2019-04-02  194.460007  191.050003  191.089996  194.020004  22765700  194.020004

2019-04-03  196.500000  193.149994  193.250000  195.350006  23271800  195.350006

2019-04-04  196.369995  193.139999  194.789993  195.690002  19114300  195.690002

2019-04-05  197.100006  195.929993  196.449997  197.000000  18526600  197.000000

2019-04-08  200.229996  196.339996  196.419998  200.100006  25881700  200.100006

2019-04-09  202.850006  199.229996  200.320007  199.500000  35768200  199.500000

2019-04-10  200.740005  198.179993  198.679993  200.619995  21695300  200.619995

2019-04-11  201.000000  198.440002  200.850006  198.949997  20900800  198.949997

2019-04-12  200.139999  196.210007  199.199997  198.869995  27760700  198.869995

做,


weekly_summary = pd.DataFrame()

weekly_summary['Open'] = df.open.resample('W').first()

print(weekly_summary)  


                  Open

Date                  

2019-04-07  191.639999

2019-04-14  196.419998

如果它沒有按日期時(shí)間編入索引,


df['Date'] = pd.to_datetime(df['Date'])

df.set_index('Date', inplace=True)

df.sort_index(inplace=True)


weekly_summary = pd.DataFrame()

weekly_summary['Open'] = df.open.resample('W').first()  

對(duì)于上面的代碼數(shù)據(jù)框?qū)⒃?'sundays' 進(jìn)行索引,如果您希望它在 'Mondays' (即一周的開始日期)進(jìn)行索引,請(qǐng)執(zhí)行以下操作。


weekly_summary = pd.DataFrame()

weekly_summary['Open'] = df.open.resample('W',loffset=pd.offsets.timedelta(days=-6)).first()

print(weekly_summary)  


                  Open

Date                  

2019-04-01  191.639999

2019-04-08  196.419998


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

添加回答

舉報(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)