Создать столбец с несколькими именами во фрейме данных Python

1

У меня есть фрейм данных df:

        Country     Value   
          US         300
          FR         360
          IT         500
          NL         450
          CH         700
          CN         233
          NF         123
          AR         456
          BR         129
          NG         423
          ..          .. 
          ..          ..
          GR         560
          CY         145
          ES         890
          PR         783
          BL         123

и я знаю, что эти страны в df входят в пятерку стран для каждого типа эксперимента. Тип эксперимента - это список, который я создал, и это: my_list = [1, 2, 3, 4, 5,......,20 ]. Поэтому первые 5 стран принадлежат к эксперименту 1, следующие 5 стран относятся к эксперименту 2,........ и последние 5 стран принадлежат эксперименту 20.

Я хочу создать столбец, который будет указывать странам на эксперимент, поэтому я хочу:

    Experiment       Country     Value   
       1               US         300
                       FR         360
                       IT         500
                       NL         450
                       CH         700
       2               CN         233
                       NF         123
                       AR         456
                       BR         129
                       NG         423
                       ..          .. 
                       ..          ..
      20               GR         560
                       CY         145
                       ES         890
                       PR         783
                       BL         123

Я знаю, что что-то подобное можно сделать при создании фрейма данных с groupby функции groupby но вы могли бы помочь, на что это лучший способ сделать это сейчас, после создания исходного фрейма данных?

Теги:
pandas

1 ответ

2
Лучший ответ

Я считаю, что лучший способ сделать это - добавить новый столбец со значением эксперимента, например:

df['Experiment'] = np.arange(len(df)) // 5
print (df)
   Country  Value  Experiment
0       US    300           0
1       FR    360           0
2       IT    500           0
3       NL    450           0
4       CH    700           0
5       CN    233           1
6       NF    123           1
7       AR    456           1
8       BR    129           1
9       NG    423           1
10      GR    560           2
11      CY    145           2
12      ES    890           2
13      PR    783           2
14      BL    123           2
  • 0
    Спасибо, а что если мои эксперименты не являются числами? Допустим, у меня есть разные имена строк
  • 1
    @RGRGRG - зависит от длины DataFrame, а не от значений столбца. Так что это не проблема, если строки или целые числа.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню