获取跨列的值 - Pandas DataFrame

Nil*_*age 24 python dataframe pandas

我有一个像下面这样的Pandas DataFrame:

               A              B              C
0   192.168.2.85   192.168.2.85  124.43.113.22
1  192.248.8.183  192.248.8.183   192.168.2.85
2  192.168.2.161            NaN  192.248.8.183
3   66.249.74.52            NaN  192.168.2.161
4            NaN            NaN   66.249.74.52
Run Code Online (Sandbox Code Playgroud)

我想获得跨列的特定值的计数.所以我的预期输出是这样的:

IP          Count
192.168.2.85 3 #Since this value is there in all coulmns
192.248.8.183 3
192.168.2.161 2
66.249.74.52 2
124.43.113.22 1
Run Code Online (Sandbox Code Playgroud)

我知道如何跨行,但对列进行此操作有点奇怪吗?帮帮我解决这个问题?谢谢.

wai*_*kuo 35

首先堆栈然后使用value_counts:

In [14]: df.stack().value_counts()
Out[14]: 
192.248.8.183    3   
192.168.2.85     3   
66.249.74.52     2   
192.168.2.161    2   
124.43.113.22    1   
dtype: int64
Run Code Online (Sandbox Code Playgroud)

  • 只有pandas Series才能使用value_counts().通过使用df.stack(),您将其DataFrame转换为Series.你的解决方案是正确的,但知道它的工作原理对我帮助很大. (2认同)