编辑:
我有一个包含以下字段的数据框
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的计数,此处的count列指的是我要在扩展中实现的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。
任何人都可以帮忙。
答案 0 :(得分:0)
您可以在.max(axis=1)
的结果上使用.nunique()
,以获取每个 Date_2 值的最大唯一值数(跨所有其他列)。
然后给所得的Series一个名称,并将其与原始数据框重新连接。
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