pandas 数据框:如何在数据框的所有列(数字和非数字)中找到特定值的计数(比如 'Unavailable')
pandas Dataframe: How do I find the count of specific value (say 'Unavailable') across all columns (numeric and non numeric) of the dataframe
假设我使用 df.fillna('Unavailable') 将数据框中的所有空值替换为字符串 ('Unavailable')。我现在需要仔细检查 'Unavailable' 的计数是否与空值的计数相匹配。有很多列和行,所以我不想指定列名等。
有没有办法在不使用 for 循环的情况下找到所有列中所有 'Unavailable' 的计数?
如果使用循环遍历所有列,当列包含数字类型时我会遇到问题。
执行 value_count 没有意义,因为我只想知道 'Unavailable' 计数而不是所有值的计数。
更重要的是,我觉得应该有一种简单的方法来做我可能会错过的事情。
你或许可以这样做:
(df.astype(str)=='Unavailable').values.sum()
如果您想概览所有价值观,pd.melt()
和 pd.groupby()
可能会帮助您探索数据
例如:
foo bar foobar
0 Unavailable asd asd
1 asd Unavailable asd
2 asd Unavailable asd
3 asd Unavailable asd
4 Unavailable asd asd
5 asd asd asd
6 Unavailable asd Unavailable
7 asd asd Unavailable
8 asd asd asd
熔化并分组 df
df_1 = pd.melt(df, value_vars=['foo ', 'bar ', 'foobar']).groupby("value").count()
假设我使用 df.fillna('Unavailable') 将数据框中的所有空值替换为字符串 ('Unavailable')。我现在需要仔细检查 'Unavailable' 的计数是否与空值的计数相匹配。有很多列和行,所以我不想指定列名等。 有没有办法在不使用 for 循环的情况下找到所有列中所有 'Unavailable' 的计数? 如果使用循环遍历所有列,当列包含数字类型时我会遇到问题。 执行 value_count 没有意义,因为我只想知道 'Unavailable' 计数而不是所有值的计数。 更重要的是,我觉得应该有一种简单的方法来做我可能会错过的事情。
你或许可以这样做:
(df.astype(str)=='Unavailable').values.sum()
如果您想概览所有价值观,pd.melt()
和 pd.groupby()
可能会帮助您探索数据
例如:
foo bar foobar
0 Unavailable asd asd
1 asd Unavailable asd
2 asd Unavailable asd
3 asd Unavailable asd
4 Unavailable asd asd
5 asd asd asd
6 Unavailable asd Unavailable
7 asd asd Unavailable
8 asd asd asd
熔化并分组 df
df_1 = pd.melt(df, value_vars=['foo ', 'bar ', 'foobar']).groupby("value").count()