Заменить значение другим значением для многоуровневого столбца в pandas

#python #python-3.x #pandas #dataframe

#python #python-3.x #pandas #фрейм данных

Вопрос:

 df = pd.DataFrame({('Quarter', 'Range'): {0: 'A', 1: 'B'}, ('Q1(0.25)', 'Low'): {0: 0, 1: 0}, ('Q1(0.25)', 'High'): {0: 10, 1: 630}, ('Q2(0.5)', 'Low'): {0: 10, 1: 630}, ('Q2(0.5)', 'High'): {0: 50, 1: 3000}, ('Q3(0.75)', 'Low'): {0: 50, 1: 3000}, ('Q3(0.75)', 'High'): {0: 100, 1: 8500}, ('Q4(1.0)', 'Low'): {0: 100, 1: 8500}, ('Q4(1.0)', 'High'): {0: 'np.inf', 1: 'np.inf'}})
  

Как и в приведенном выше фрейме данных, если значение столбца A находится в диапазоне 0-10, замените значение на 0,25, если значение находится в диапазоне 10-50, замените значение на 0,5. Аналогично, мы должны повторить для всех значений и столбцов.

Ожидаемый результат:

Если значение равно 12 для A и 3210 для столбца B.

 df2 = pd.DataFrame({'Column': {0: 'A', 1: 'B'}, 'Prob': {0: 0.5, 1: 0.75}})
  

Как это сделать?

Комментарии:

1. Что print (df1.to_dict()) для первого фрейма данных?

2. Можете ли вы использовать копируемый обычный текст вместо изображений? Это значительно упростило бы работу над вашей проблемой.

3. df.to_dict() равен {‘Quarter’: {0: ‘Range’, 1: ‘A’, 2: ‘B’}, ‘Q1(0.25)’: {0: ‘Low’, 1: 0, 2: 0}, ‘ Неназванный: 2’:{0: ‘Высокий’, 1: 10, 2: 630}, ‘ Q2(0.5)’: {0: ‘Низкий’, 1: 10, 2: 630}, ‘ Неназванный: 4’: {0: ‘Высокий’, 1: 50, 2: 3000}, ‘Q3 (0.75)’: {0: ‘Низкий’, 1: 50, 2: 3000}, ‘ Неназванный: 6’: {0: ‘Высокий’, 1: 100, 2: 8500}, ‘ Q4(1.0)’: {0: ‘Низкий’,1: 100, 2: 8500}, ‘ Неназванный: 8’: {0: ‘Высокий’, 1: ‘np.inf’, 2: ‘np.inf’}}

4. это многоуровневый столбец, если я использую to_dict, он отображается безымянным, поэтому я вставил картинку, попытаюсь изменить

5. Как создается в первую df очередь? Из файла? По df = pd.read_csv(file, header=[0,1]) для чтения мультииндекса?