我的数据框如下:
Name Marks Place Points
John-->Hile 50 Germany-->Poland 1
Rog-->Oliver 60-->70 Australia-->US 2
Harry 80 UK 3
Faye-->George 90 Poland 4
我想要一个如下结果,该结果以“->”列为单位查找值的计数并将其转置,结果如下数据框所示:
Column Count
Name 3
Marks 1
Place 1
此df例如。此datframe是动态的,并且在第二次运行中可能会有所不同,例如在第二次运行中,我们可能会有Name,Marks,Place或Name,Marks或其他任何内容,因此代码应该是动态的,可以在任何df上运行。
答案 0 :(得分:1)
您可以选择对象列,然后逐列执行计数和求和:
df.select_dtypes(object).apply(lambda x: x.str.contains('-->')).sum()
Name 3
Marks 1
Place 2
dtype: int64
另一个applymap
怪异但有趣的方法:
(df.select_dtypes(object)
.applymap(lambda x: '-->' in x if isinstance(x, str) else False)
.sum())
Name 3
Marks 1
Place 2
dtype: int64