从 CSV 查询一个值并从另一个 CSV 获取该值的计数

时间:2021-04-23 14:48:01

标签: python python-3.x pandas dataframe

我正在处理一个数据框要求,我需要从一个 CSV1 中获取每个值,并在不同的 CSV 中查找该值的出现次数。

Ex - CSV1 

Category - ColumnName
HTTP
DISK
APACHE
IIS
SQL

EX - CSV2
Category - ColumnName
HTTP
HTTP
DISK
DISK
DISK
APACHE
IIS
IIS
ISS
SQL

我需要输出如下

Category Count
HTTP      2
DISK      3
APACHE    1
IIS       3
SQL       1

我在下面试过 -

df2['cat'] = df2['Category'].map(df1.set_index('Category'))
df2 = df2['cat'].value_counts().rename_axis('a').reset_index(name='b')

没有按预期给出结果。请帮我指点一下。

1 个答案:

答案 0 :(得分:2)

您可以在列上使用 pandas.Series.value_counts() 来获取该列中出现的值的计数。然后使用 pandas.Series.map() 映射 Series 的值。

df1['count'] = df1['Category'].map(df2['Category'].value_counts())
print(df1)

  Category  count
0     HTTP      2
1     DISK      3
2   APACHE      1
3      IIS      2
4      SQL      1