简体   繁体   English

pandas DataFrame 中多列的按列字符串计数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM