如何合并两个“value_counts”结果而不丢失数据? [重复]

问题描述 投票:0回答:1

我想累积值计数,但简单的加法并不能解决问题。

假设我有很多很多系列,例如:

a = pd.Series([1,2,2,None], dtype=object)
b = pd.Series([3,2,2,None], dtype=object)
...

我想要生产

pd.concat([a,b,...]).value_counts(dropna=False)
2       4
None    2
1       1
3       1
Name: count, dtype: int64

增量,即从

vc_a = a.value_counts(dropna=False)
vc_b = b.value_counts(dropna=False)
...

唉,简单的

vc_a + vc_b
产生了

1       NaN
2       4.0
3       NaN
None    2.0

即,仅出现在系列之一中的对象未正确计数。

那么,如何合并一堆计数系列?

python pandas dataframe series
1个回答
0
投票

collections.Counter

coco = collections.Counter()
for vc in vc_iterator():
    coco += vc.to_dict()
vc_sum = pd.Series(coco)

@BigBen:
pandas.Series.add

vc_sum = pd.Series()
for vc in vc_iterator():
    vc_sum = vc_sum.add(vc, fill_value=0)

@mozway:
pandas.concat

vc_sum = pd.concat(vc_list, axis="columns").sum(axis="columns")
© www.soinside.com 2019 - 2024. All rights reserved.