不包含逗号的数据框列值的唯一计数?



假设我的数据框架是这样的:

+         +
Index     |    A    |    B
+--------------|---------|----------+
|         |
1              |Y,Z      |    nan
|         |
2              |Y,Z,X    |     2
|         |
3              |Z        |     7
|         |
4              |nan      |     1
+         +

这个数据框有10,000行长,包含a列中的许多变化。

从列A中,我如何通过忽略逗号(,)获得所有唯一的返回值?

从上面的3行数据帧中,它将是:

Z = 3
Y = 2
X = 1

不我寻找:

Y,Z = 1
Y,Z,X = 1
X = 1

谢谢!

你可以试试

out = df['A'].str.split(',').explode().value_counts()
print(out)
Z    3
Y    2
X    1
Name: A, dtype: int64

This?

# Set up problem
df = pd.DataFrame({'A': [['Y', 'Z'], ['Y','Z','X'], 'Z', np.NaN], 'B': [np.NaN,2,7,1]})
df.A.explode().value_counts()

输出
Z    3
Y    2
X    1
df.A.str.split(",").explode().value_counts()

假设是字符串,使用str.split,结合explodevalue_counts:

df['A'].str.split(',').explode().value_counts()

输出:

Z    3
Y    2
X    1
Name: A, dtype: int64

输入:使用

df = pd.DataFrame({'A': ['Y,Z', 'Y,Z,X', 'Z', pd.NA], 'B': [pd.NA,2,7,1]})

最新更新