У меня есть фрейм данных, и я пытаюсь добавить столбец к данным.
import numpy as np
import pandas as pd
import random as rnd
all_df = pd.read_csv('Cleaned-Data.csv')
for dataset in all_df:
dataset['Severity'] = 1
Когда я запускаю приведенный выше код, я получаю следующую ошибку:
TypeError Traceback (most recent call last)
<ipython-input-38-d3aa149f309c> in <module>
1 for dataset in all_df:
----> 2 dataset['Severity'] = 1
TypeError: 'str' object does not support item assignment
Я хотел добавить немного больше к проблеме. На самом деле мне не нужно добавлять один столбец с добавлением только одного значения. Я пытался упростить задачу, чтобы попытаться понять, что не так.
Ниже приведен модифицированный код.
import numpy as np
import pandas as pd
import random as rnd
all_df = pd.read_csv('Cleaned-Data.csv')
all_df['Severity'] = 0
Когда я добавляю столбец серьезности, он работает. Но когда я добавляю несколько logi c и l oop через набор данных, я снова получаю сообщение об ошибке.
for dataset in all_df:
dataset.loc[dataset['Severity_None'] == 1, 'Severity'] = 1
dataset.loc[dataset['Severity_Moderate'] == 1, 'Severity'] = 3
dataset.loc[dataset['Severity_Mild'] == 1, 'Severity'] = 2
dataset.loc[dataset['Severity_Severe'] == 1, 'Severity'] = 4
AttributeError Traceback (most recent call last)
<ipython-input-51-d5f5b9230b07> in <module>
1 for dataset in all_df:
----> 2 dataset.loc[dataset['Severity_None'] == 1, 'Severity'] = 1
3 dataset.loc[dataset['Severity_Moderate'] == 1, 'Severity'] = 3
4 dataset.loc[dataset['Severity_Mild'] == 1, 'Severity'] = 2
5 dataset.loc[dataset['Severity_Severe'] == 1, 'Severity'] = 4
AttributeError: 'str' object has no attribute 'loc'
результат первых 5 строк.
Почему я получаю указанную выше ошибку?