[英]Column-wise string counts for multiple columns in a pandas DataFrame
I have dataframe as below:我有 dataframe 如下:
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
I want a result as below which finds counts of value having "-->"column wise and transpose it and result as below dataframe:我想要一个结果如下,它找到具有“-->”列的值计数并将其转置,结果如下 dataframe:
Column Count
Name 3
Marks 1
Place 1
This df is eg.This datframe is dynamic and can vary in each run like in 2nd Run we might have Name,Marks,Place or Name,Marks or anything else, So code should be dynamic which can run on any df.这个 df 是 eg.This datframe 是动态的,并且在每次运行中都会发生变化,就像在 2nd Run 中一样,我们可能有 Name、Marks、Place 或 Name、Marks 或其他任何东西,所以代码应该是动态的,可以在任何 df 上运行。
You can select object columns and column-wise perform a count and summation:您可以 select object 列和按列执行计数和求和:
df.select_dtypes(object).apply(lambda x: x.str.contains('-->')).sum()
Name 3
Marks 1
Place 2
dtype: int64
Another weird, but interesting method with applymap
:另一个奇怪但有趣的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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.