gpt4 book ai didi

python - 如何应用独特的函数并转换并保留数据框 pandas 中的完整列

转载 作者:行者123 更新时间:2023-11-30 09:33:05 24 4
gpt4 key购买 nike

我的目标是提取数据框中 for each PatienNumber and year and month 的行数显示它们的计数并将所有列保留在数据框中。

这是原始数据框:

 PatientNumber           QT         Answer   Answerdate      year    month  dayofyear  count  formula
1 1 transferring No 2017-03-03 2017 3 62 2.0 (1/3)
2 1 preparing food No 2017-03-03 2017 3 62 2.0 (1/3)
3 1 medications Yes 2017-03-03 2017 3 62 1.0 (1/3)
4 2 transferring No 2006-10-05 2006 10 275 3.0 0
5 2 preparing food No 2006-10-05 2006 10 275 3.0 0
6 2 medications No 2006-10-05 2006 10 275 3.0 0
7 2 transferring Yes 2007-4-15 2007 4 105 2.0 2/3
8 2 preparing food Yes 2007-4-15 2007 4 105 2.0 2/3
9 2 medications No 2007-4-15 2007 4 105 1.0 2/3
10 2 transferring Yes 2007-12-15 2007 12 345 1.0 1/3
11 2 preparing food No 2007-12-15 2007 12 345 2.0 1/3
12 2 medications No 2007-12-15 2007 12 345 2.0 1/3
13 2 transferring Yes 2008-10-10 2008 10 280 1.0 (1/3)
14 2 preparing food No 2008-10-10 2008 10 280 2.0 (1/3)
15 2 medications No 2008-10-10 2008 10 280 2.0 (1/3)
16 3 medications No 2008-10-10 2008 12 280 …… ………..

因此所需的输出应与此相同,多一列,显示 [患者编号,年份,月份] 的唯一行。对于 patient number=1 shows 1对于PatientNumber= 2 shows 1 in year 2006, shows 2 in year 2007

我应用了此代码:

data=data.groupby(['Clinic Number','year'])["month"].nunique().reset_index(name='counts')

此代码的输出如下所示:

  Clinic Number  year  **counts**
0 494383 1999 1
1 494383 2000 2
2 494383 2001 1
3 494383 2002 1
4 494383 2003 1

输出计数是正确的,但它不保留整个字段。我想要完整的列,因为稍后我必须对它们进行一些计算。

然后我尝试了这段代码:

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

这又不好,因为它没有显示正确的计数。这段代码的输出如下:

  Clinic Number Question Text Answer Text  ...    year month counts
1 3529933 bathing No ... 2011 1 10
2 3529933 dressing No ... 2011 1 10
3 3529933 feeding No ... 2011 1 10
4 3529933 housekeeping No ... 2011 1 10
5 3529933 medications No ... 2011 1 10

这里的计数应该是 1因为对于那个病人和那一年来说只有一个月。

最佳答案

使用,对您的代码进行以下修改。

df['counts'] = df.groupby(['PatientNumber','year'])["month"].transform('nunique')

transform 返回与原始数据帧长度相等的系列,因此您可以将此系列作为列添加到数据帧中。

关于python - 如何应用独特的函数并转换并保留数据框 pandas 中的完整列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50843296/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com