2024-09-27 23:28:26 发布
网友
我有一个如下的数据集。我想能够填充缺失的文本与什么是正常的群体。我试过使用ffil,但这对那些一开始就空白的人没有帮助,而bfil对结束也没有帮助。我该怎么做?你知道吗
Group Name 1 Annie 2 NaN 3 NaN 4 David 1 NaN 2 Bertha 3 Chris 4 NaN
期望输出:
Group Name 1 Annie 2 Bertha 3 Chris 4 David 1 Annie 2 Bertha 3 Chris 4 David
使用collections.Counter按组创建模式映射:
collections.Counter
from collections import Counter s = df.dropna(subset=['Name'])\ .groupby('Group')['Name']\ .apply(lambda x: Counter(x).most_common()[0][0]) df['Name'] = df['Name'].fillna(df['Group'].map(s)) print(df) Group Name 0 1 Annie 1 2 Bertha 2 3 Chris 3 4 David 4 1 Annie 5 2 Bertha 6 3 Chris 7 4 David
您可以使用value_counts和head:
value_counts
head
s = df.groupby('Group')['Name'].apply(lambda x: x.value_counts().head(1)).reset_index(-1)['level_1'] df['Name'] = df['Name'].fillna(df['Group'].map(s)) print(df)
输出:
Group Name 0 1 Annie 1 2 Bertha 2 3 Chris 3 4 David 4 1 Annie 5 2 Bertha 6 3 Chris 7 4 David
使用
collections.Counter
按组创建模式映射:您可以使用
value_counts
和head
:输出:
相关问题 更多 >
编程相关推荐