我要计算“父”列中“子”列中的值出现的次数,然后在重新命名为“子”计数的新列中显示此计数。请参见下面的预览df。
我已经通过VBA(COUNTIFS)完成此操作,但是现在需要动态可视化和动画显示,并从目录中获取数据。因此,我求助于Python和Pandas,并在搜索并阅读以下答案后尝试使用以下代码:Countif in pandas with multiple conditions | Determine if value is in pandas column | Iterate over rows in Pandas df |很多其他的... 但仍然无法获得预期的预览,如下图所示。
任何帮助将不胜感激。预先感谢。
color
[已编辑]我的数据
Child = ['Tkt01','Tkt02','Tkt03','Tkt04','Tkt05','Tkt06','Tkt07','Tkt08','Tkt09','Tkt10']
父母= ['','','Tkt03','',','Tkt03',','Tkt03',',',','Tkt06',',',',' ',]
Site_Name = [Yaounde','Douala','Bamenda','Bafoussam','Kumba','Garoua','Maroua','Ngaoundere','Buea','Ebolowa']
答案 0 :(得分:2)
我为您的df创建了相似的外观。
尝试此代码
df['Count'] = [len(df[df['parent'].str.contains(value)]) for index, value in enumerate(df['child'])]
#breaking it down as a line by line code
counts = []
for index, value in enumerate(df['child']):
found = df[df['parent'].str.contains(value)]
counts.append(len(found))
df['Count'] = counts
希望这对您有用。
答案 1 :(得分:0)
由于我无权访问您的数据,因此无法检查我提供给您的代码。我建议您在此行中使用nan值时会遇到问题,但是可以尝试一下。
df_ns['child_count'] = df_ns['Parent'].groupby(df_ns['Child']).value_counts()
我给新列起一个名字,并通过groupby-> value_counts函数直接为其赋值。