У меня есть панд dataframe вроде этого:Expand панд dataframe на основе диапазона в колонке
Name SICs
Agric 0100-0199
Agric 0910-0919
Agric 2048-2048
Food 2000-2009
Food 2010-2019
Soda 2097-2097
Колонка SICs
дает диапазон целых значений, которые соответствуют Name
, приведенные в первой колонке (хотя они хранится как строка).
мне нужно расширить эту DataFrame так, что она имеет одну строку для каждого целого числа в диапазоне:
Agric 100
Agric 101
Agric 102
...
Agric 199
Agric 910
Agric 911
...
Agric 919
Agric 2048
Food 2000
...
Есть особенно хороший способ сделать это? Я собирался сделать что-то вроде этого
ranges = {i:r.split('-') for i, r in enumerate(inds['SICs'])}
ranges_expanded = {}
for r in ranges:
ranges_expanded[r] = range(int(ranges[r][0]),int(ranges[r][1])+1)
, но мне интересно, если есть лучший способ, или, возможно, панды особенности, чтобы сделать это. (Кроме того, я не уверен, что это будет работать, так как я еще не видел, как читать ranges_expanded
словарь в DataFrame.)
Стандартный комментарий: если вы вставляете изображение, его нельзя копировать и вставлять - им нужно будет ввести его. С другой стороны, если вы вставляете * текст *, мы можем использовать 'pd.read_clipboard () ', чтобы легко воспроизвести ваш кадр. – DSM
Мне кажется, что в точке вы делаете 'range = {i: r.split ('-') для i, r в enumerate (inds ['SICs'])}' вы теряете информацию о «имени». Если вам удастся поместить все эти пары «имя», «SIC» в кортежи, вы можете просто сказать «pd.DataFrame (кортежи)» и создаст DataFrame для вас –