Ошибка значения: слишком много значений для распаковки (ожидается 2) — столбец времени разделения

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

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

Вопрос:

Время чипирования

Это столбец времени чипа в фрейме данных

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

 time_list = df7[' Chip Time'].to_list()

time_mins = []
for i in time_list:
# used strip to remove trailing space
    i = i.strip(' ')
    m, s = i.split(':')
    math = (int(m)*60   int(s))/60
    time_mins.append(math)
df7['Runner_mins'] = time_mins
df7.head()
 

Ошибка:

 ---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-52-7afde4a258f4> in <module>
      6 for i in time_list:
      7     i = i.strip(' ')
----> 8     m, s = i.split(':')
      9     math = (int(m)*60   int(s))/60
     10     time_mins.append(math)

ValueError: too many values to unpack (expected 2)
 

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

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

Может кто-нибудь сказать мне, в чем ошибка?

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

1. Вероятно, i — это более 2 записей, когда вы разбиваете его на строке 8, поэтому его нельзя распаковать только на «m, s». Попробуйте присвоить i.split(‘:’) другой переменной и распечатать ее.

2. @samm82 значение i равно 36:21, я хочу разделить его и сохранить в m = 36, s = 21 и вычислить операцию, результат должен быть 36.350000, как показано в ожидаемом выходе.

3. @samm82 когда я попытался разделить и распечатать m, s, используя ту же строку кода m, s = i.split(‘:’) , он печатается правильно. Но когда я запускаю всю программу, я получаю сообщение об ошибке.

4. Могу ли я спросить, почему вы просто не используете pandas.to_datetime() . затем используйте .dt. accessor для ряда, чтобы получить доступ к минутам и секундам в качестве атрибутов ряда?