pandas value_counts 获取 其中出现一次的值
时间: 2023-09-03 07:02:47 浏览: 128
Pandas的value_counts方法可以用于获取一个Series中各个值出现的频次,但无法直接获取只出现一次的值。不过我们可以通过对value_counts方法的结果进行处理,筛选出只出现一次的值。
具体的做法是,我们可以先使用value_counts方法得到每个值的频次,然后使用布尔索引筛选出频次为1的值。
示例如下:
```python
import pandas as pd
# 创建一个Series
s = pd.Series([1, 2, 3, 3, 4, 4, 5, 5, 6])
# 使用value_counts方法得到每个值的频次
value_counts_result = s.value_counts()
# 使用布尔索引筛选出频次为1的值
result = value_counts_result[value_counts_result == 1]
print(result)
```
输出结果:
```
1 1
2 1
6 1
dtype: int64
```
在上面的示例中,我们通过value_counts方法得到了每个值出现的频次,然后使用`value_counts_result == 1`得到了每个值是否为1次,最后通过布尔索引得到了只出现一次的值。
相关问题
pandas value_counts 详细用法
pandas中的value_counts()函数可以用于统计某一列中不同值出现的次数,它返回一个Series对象,其中包含每个不同值的计数。以下是它的详细用法:
```python
DataFrame['column_name'].value_counts(
normalize=False,
sort=True,
ascending=False,
bins=None,
dropna=True,
)
```
参数解释:
- normalize:设置为True时,返回每个不同值的百分比。
- sort:设置为True时,将结果按照计数值进行排序。
- ascending:设置为False时,将计数值从大到小排序。
- bins:设置为整数n时,将数据分为n个等宽的区间,并统计每个区间中不同值的计数。
- dropna:设置为False时,将包含NaN值的计数值也进行计算。
示例:
```python
import pandas as pd
data = {'name': ['Tom', 'Jerry', 'Tom', 'Lucy', 'Jerry']}
df = pd.DataFrame(data)
# 统计name列中每个不同值出现的次数
value_counts = df['name'].value_counts()
print(value_counts)
# 按照计数值进行排序
sorted_counts = df['name'].value_counts().sort_values()
print(sorted_counts)
# 返回每个不同值的百分比
percent_counts = df['name'].value_counts(normalize=True)
print(percent_counts)
# 将数据分为3个等宽的区间,并统计每个区间中不同值的计数
binned_counts = df['name'].value_counts(bins=3)
print(binned_counts)
# 包含NaN值的计数值也进行计算
nan_counts = pd.Series(['Tom', 'Jerry', 'Tom', 'Lucy', None]).value_counts(dropna=False)
print(nan_counts)
```
pandas value_counts算百分比
Pandas是一个Python库,专门用于处理和分析数据。在Pandas中,value_counts()是一个函数,用于计算数据集中每个唯一值的出现次数。如果我们想要计算这些值的百分比,可以使用normalize参数。normalize默认是False,即返回数据集中每个唯一值的计数。如果将normalize参数设置为True,value_counts()函数将按百分比返回每个唯一值出现的频率,而不是计数。例如,如果我们有一个包含1000个元素的数据集,其中有300个“是”和700个“否”,并且我们运行以下代码:
```python
import pandas as pd
data = ["yes"] * 300 + ["no"] * 700
s = pd.Series(data)
print(s.value_counts(normalize=True))
```
我们将获得以下输出:
```
no 0.7
yes 0.3
dtype: float64
```
这表示“是”占30%,“否”占70%。根据需要,我们还可以将百分比格式化为特定的数字或字符串格式。
阅读全文