统计df中no_id中的no_national_id的sa_id的数量,no_idphoto列中no_national_idCard的sa_id的数量
时间: 2024-10-05 14:03:31 浏览: 19
在Pandas DataFrame `df` 中,如果你想要统计 `no_id` 列中 `no_national_id` 子字符串出现的次数,以及 `no_idphoto` 列中 `no_national_idCard` 子字符串对应的 `sa_id` 的数量,你可以使用以下步骤:
```python
# 首先,假设 'sa_id' 在 'no_id' 或 'no_idphoto' 列中都是一一对应的
count_no_national_id = df['no_id'].str.contains('no_national_id').sum()
count_sa_ids = df[df['no_idphoto'].str.contains('no_national_idCard')]['sa_id'].nunique()
count_no_national_id, count_sa_ids
```
这里我们通过`.str.contains()` 方法检查每个行中是否包含指定的子串,然后计算总匹配数(`sum()`),对于 `no_idphoto` 列,我们筛选出含有特定子串的行,并计算 `sa_id` 的唯一值(`nunique()`)。
相关问题
统计df中no_id中的no_national_id的sa_id的数量
如果你想统计 DataFrame (`df`) 中某个列(`no_id`) 下的另一个列(`no_national_id`) 对应的 `sa_id` 数量,你可以使用以下步骤:
1. 确保 `no_id` 和 `no_national_id` 是 DataFrame 的列名。
2. 使用 `groupby` 方法按 `no_national_id` 分组,并计算每个组的 `sa_id` 的数目:
```python
count_per_national_id = df.groupby('no_national_id')['sa_id'].count()
```
这将返回一个新的 Series,其中索引是 `no_national_id`,值是对应 `sa_id` 的数量。
3. 如果你想要得到一个单独的数据框,包含原始 `no_national_id` 以及对应的 `sa_id` 数量,可以加上 `.reset_index()`:
```python
result_df = count_per_national_id.reset_index(name='sa_id_count')
```
4. 结果 `result_df` 现在包含了每个 `no_national_id` 对应的 `sa_id` 数量。
完整的例子:
```python
count_df = df.groupby('no_national_id')['sa_id'].count().reset_index(name='sa_id_count')
```
```python
阅读全文