如何在Pandas中按数据帧分组并将整个字段保存在outpu中

2024-10-05 12:24:14 发布

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

我想要基于三列的组,但是在输出中保留原始列(6列)。在

这个link实际上对我没有帮助。它只有三列,并根据这三列分组。在

这是我的original数据帧的示例:

   Clinic Number  Question Text  Answer Text Answer Date     year  month dayofyear
1       1        bathing            No    2006/7/1     2006    1         7
2       1        dressing           No    2006/7/1     2006    1         7
3       1        feeding            NO    2006/7/1     2006    1         7
4       1        housekeeping       No    2006/7/1     2006    1         7
5       1        medications        No    2006/7/1     2006    1         7
6       2        bathing            No    2006/1/1     2006    1         1
7       2        dressing           Yes   2006/1/1     2006    1         1
8       2        feeding            Yes   2006/1/1     2006    1         1
9       2        housekeeping       Yes   2006/1/1     2006    1         1
10      2        medications        No    2006/1/1     2006    1         1

我想按[clinicNumber,Answer Text, Year,month]分组, 但是我需要其他列,比如Answer Date and question Text, yearOfdaycolumn,因为稍后我要对它们进行一些计算。在

我所做的: 这是我在这个数据帧上使用的组来达到我的目标。问题是输出中没有Answer date ,yearofyear ...。在

^{pr2}$

此group by的输出如下所示:

 Clinic Number    year   month   Answer Text  counts
0         1       1999     5          No       6
1         1       2000    10          No       6
2         1       2000     2          No       6
3         1       2001     9          Yes       6
4         1       2002     2          Yes       8
5         1       2003     2          No       8
6         1       2004     4          No       8
7         1       2014     6          No       2
8         1       2015    10          No       2
5         2       2003     2          No       8
6         2       2004     4          No       8
7         2       2014     6          No       2
8         2       2015    10          No       2

感谢任何帮助:)


Tags: 数据notextanswernumberdateyearyes
1条回答
网友
1楼 · 发布于 2024-10-05 12:24:14

IIUC,将groupbytransform一起使用,并将其设置为现有dataframe中的新列。在

data['counts'] = (data.groupby(['Clinic Number',
                                'year',
                                'month',
                                'Answer Text'])['Clinic Number']
                      .transform('size'))

data = data.sort_values(['Client Number','Answer Date'])

输出:

^{pr2}$

相关问题 更多 >

    热门问题