Присоединение к словарю с одним и тем же ключом, несколькими значениями [дубликаты]

Используйте вместо :

In [10]: df.b.str.contains('^f')
Out[10]: 
0    False
1     True
2     True
3    False
Name: b, dtype: bool

1
задан sgerbhctim 15 January 2019 в 14:54
поделиться

1 ответ

Одно решение с использованием groupby :

def zipper(row):
    return list(zip(row['longitude'], row['latitude']))

res = df.dropna(subset=['longitude', 'latitude'])\
        .groupby('interview').apply(zipper).to_dict()

# {'A1': [(34.2, 90.2), (54.2, 23.5)],
#  'A2': [(23.1, 38.2), (-23.7, -98.4)]}

Другое с использованием collections.defaultdict :

from collections import defaultdict

res = defaultdict(list)
for row in df.dropna(subset=['longitude', 'latitude']).itertuples(index=False):
    res[row.interview].append((row.longitude, row.latitude))

С defaultdict является подклассом dict, как правило, никаких дальнейших манипуляций не требуется.

0
ответ дан jpp 15 January 2019 в 14:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: