Пример. Интересующие столбцы: company_id (строка) и company_score (число с плавающей запятой).
Итак, Вы можете использовать groupby
company_id столбец и преобразовать его результат в словарь DataFrames:
>>> import pandas as pd
>>> df = pd.DataFrame({
... "company_id": ["AA", "AB", "AA", "CD", "AB"],
... "company_score": [.07, .08, .06, .0003, .09],
... "company_region": ["NW", "NE", "NW", "NW", "NE"]})
>>> df
company_id company_region company_score
0 AA NW 0.0700
1 AB NE 0.0800
2 AA NW 0.0600
3 CD NW 0.0003
4 AB NE 0.0900
>>> dict_of_companies = {k: v for k, v in df.groupby('company_id')}
>>> import pprint
>>> pprint.pprint(dict_of_companies)
{'AA': company_id company_region company_score
0 AA NW 0.07
2 AA NW 0.06,
'AB': company_id company_region company_score
1 AB NE 0.08
4 AB NE 0.09,
'CD': company_id company_region company_score
3 CD NW 0.0003}
>>>