我正在处理一个数据框要求,我需要从一个 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')
没有按预期给出结果。请帮我指点一下。
答案 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