假设我的数据框架是这样的:
+ +
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
,结合explode
和value_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]})