编辑:
我有一个包含以下字段的数据帧,
I_Code Date_1 Date_2 Count real_Count
4 01/09/2019 02/08/2019 112 1
4 01/09/2019 03/08/2019 178 3
1 01/09/2019 04/08/2019 174 6
4 01/09/2019 04/08/2019 174 6
1 01/09/2019 05/08/2019 194 8
4 01/09/2019 05/08/2019 194 8
1 01/09/2019 06/08/2019 195 8
2 01/09/2019 06/08/2019 195 8
4 01/09/2019 07/08/2019 208 10
1 01/09/2019 08/08/2019 183 14
2 01/09/2019 08/08/2019 183 14
4 01/09/2019 08/08/2019 183 14
1 01/09/2019 09/08/2019 213 17
4 01/09/2019 09/08/2019 213 17
1 01/09/2019 10/08/2019 213 14
real_count表示数据帧中date_2的计数,此处的计数列是指我想在扩展中实现的date_2的频率计数。我想扩展数据帧,以便date_2显示为计数总数。date_2有多个条目,这些条目受date_1和I_code约束。
1 01/09/2019 08/08/2019 183
2 01/09/2019 08/08/2019 183
4 01/09/2019 08/08/2019 183
这里的date_2相同,但I_code不同。
例:
假设 date_2 = 08/08/2019 共有 3 个条目。 然后在扩展时,我们需要在数据帧中获取 183 个条目,每个条目具有相等的条目,即 183/3。
谁能帮忙。
您可以在.nunique()
的结果上使用.max(axis=1)
,以获取每个Date_2值的最大唯一值数(跨所有其他列)。
然后为生成的系列命名,并将其与原始数据帧联接回去。
df.join(df.groupby('Date_2').nunique().max(axis=1).rename('Date_2_Count'), on='Date_2')
I_Code Date_1 Date_2 Count real_Count Date_2_Count
4 01/09/2019 02/08/2019 112 1 1
4 01/09/2019 03/08/2019 178 3 1
1 01/09/2019 04/08/2019 174 6 2
4 01/09/2019 04/08/2019 174 6 2
1 01/09/2019 05/08/2019 194 8 2
4 01/09/2019 05/08/2019 194 8 2
1 01/09/2019 06/08/2019 195 8 2
2 01/09/2019 06/08/2019 195 8 2
4 01/09/2019 07/08/2019 208 10 1
1 01/09/2019 08/08/2019 183 14 3
2 01/09/2019 08/08/2019 183 14 3
4 01/09/2019 08/08/2019 183 14 3
1 01/09/2019 09/08/2019 213 17 2
4 01/09/2019 09/08/2019 213 17 2
1 01/09/2019 10/08/2019 213 14 1