簡體   English   中英

由於分組,從 pandas 數據框中提取數據時出現問題

[英]Problems extracting data from pandas data frame as a result of Grouping

為了 plot 每 10 天龍卷風的頻率,我使用 10 天為一組對數據進行了分組

df_grouped = pd.DataFrame()
df_grouped['COUNT'] = df.groupby(pd.Grouper(key='DATE', freq='10D'))['DATE'].count().to_frame()

但是DATE列在我運行時顯示的代碼中不存在:

>>> df_grouped.shape
(1041,1)

盡管我能夠在 Jupiter notebook GUI 1中查看日期和 plot。

這是一個問題,因為我希望以后出於其他目的訪問此數據,但我無法使用:

year = pd.to_datetime(df_grouped['DATE'], dayfirst = True, errors='coerce').dt.year.values
df_grouped['year'] = year

它指出存在無效索引錯誤,因為該列不再存在。 有誰知道我可以做什么來訪問數據?


最小可重現示例

import pandas as pd
df = pd.DataFrame(pd.date_range(start='1994-01-01', end='1994-01-21'), columns=['DATE'])
df_grouped = pd.DataFrame()
df_grouped['COUNT'] = df.groupby(pd.Grouper(key='DATE', freq='10D'))['DATE'].count().to_frame()

預計 output

|DATE      |COUNT   |
|1994-01-01|10      |
|1994-01-11|10      |
|1994-01-21|10      |
|1994-01-31|01      |

實際 output

|          |COUNT   |
|DATE      |        |
|1994-01-01|10      |
|1994-01-11|10      |
|1994-01-21|10      |
|1994-01-31|01      |
import pandas as pd

df = pd.DataFrame(pd.date_range(start='1994-01-01', end='1994-01-21'), columns=['DATE'])

df = (df.assign(COUNT=lambda x: 1)
        .groupby(pd.Grouper(key='DATE', freq='10D')).count()
        .reset_index())

print(df)
#         DATE  COUNT
# 0 1994-01-01     10
# 1 1994-01-11     10
# 2 1994-01-21      1

暫無
暫無

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

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