Pandas工作日分组(M/T/W/T/F/S/S)

2024-05-19 07:23:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个pandas数据框,其中包含一个时间序列(作为索引),格式为YYYY-MM-d d(“到达日期”),我想按每个工作日(星期一到星期日)分组,以便计算其他列的平均值、中位数、性病等。我最后应该只有七行,到目前为止我只知道如何按周分组,每周一次汇总。

# Reading the data
df_data = pd.read_csv('data.csv', delimiter=',')

# Providing the correct format for the data
df_data = pd.to_datetime(df_data['arrival_date'], format='%Y%m%d')

# Converting the time series column to index
df_data.index = pd.to_datetime(df_data['arrival_date'], unit='d')

# Grouping by week (= ~52 rows per year)
week_df = df_data.resample('W').mean()

有没有一个简单的方法来实现我在熊猫方面的目标?我想每隔7个元素选择一个,然后对结果数组执行操作,但这似乎不必要复杂。

数据帧的头部如下所示

       arrival_date    price 1    price_2         price_3       price_4
2       20170816      75.945298  1309.715056     71.510215      22.721958
3       20170817      68.803269  1498.639663     64.675232      22.759137
4       20170818      73.497144  1285.122022     65.620260      24.381532
5       20170819      78.556828  1377.318509     74.028607      26.882429
6       20170820      57.092189  1239.530625     51.942213      22.056378
7       20170821      76.278975  1493.385548     74.801641      27.471604
8       20170822      79.006604  1241.603185     75.360606      28.250994
9       20170823      76.097351  1243.586084     73.459963      24.500618
10      20170824      64.860259  1231.325899     63.205554      25.015120
11      20170825      70.407325   975.091107     64.180692      27.177654
12      20170826      87.742284  1351.306100     79.049023      27.860549
13      20170827      58.014005  1208.424489     51.963388      21.049374
14      20170828      65.774114  1289.341335     59.922912      24.481232

Tags: csvtheto数据formatpandasdfdata

热门问题