Мы обсуждаем данные, которые импортированы из Excel
ene2 = pd.read_excel('Energy Indicators.xls', index=False)
недавно я спросил в сообщении, где ответы были четкими, простыми и принесли успех.
Изменение значений элементов in Pandas Datastructure
Однако я пошел дальше, и у меня есть аналогичная (si c!) проблема, когда присвоение переменной ничего не меняет.
Давайте рассмотрим данные Структура
print(ene2.head())
Country Energy Supply Energy Supply per Capita % Renewable's
15 NaN Gigajoules Gigajoules %
16 Afghanistan 321000000 10 78.6693
17 Albania 102000000 35 100
18 Algeria1 1959000000 51 0.55101
19 American Samoa ... ... 0.641026
238 Viet Nam 2554000000 28 45.3215
239 Wallis and Futuna Islands 0 26 0
240 Yemen 344000000 13 0
241 Zambia 400000000 26 99.7147
242 Zimbabwe 480000000 32 52.5361
243 NaN NaN NaN NaN
244 NaN NaN NaN NaN
где некоторые страны имеют индекс (например, Algieria1 или Australia12). Я хочу изменить эти имена, чтобы они стали только Algieria, Australia и т. Д.
Всего есть 20 записей, которые предполагается изменить. Я разработал метод для этого, который на последнем этапе терпит неудачу ..
for value in ene2['Country']:
if type(value) == float: # to cover NaN values
continue
x = re.findall("\D+\d", value) # to find those countries/elements which are with number
while len(x) > 0: # this shows elements with number, otherwise answer is [], which is 0
for letters in x: # to touch letters
right = letters[:-1] # and get rid of the last number
ene2.loc[ene2['Country'] == value, 'Country'] = right # THIS IS ELEMENT WHICH FAILS <= it does not chagne the value
x = re.findall("\D+\d", value) # to bring the new value to the while loop
Код выше должен решить задачу, окончательно удалить все индексы из имен, но код - ene2.loc [ ...], который раньше работал, здесь, где вложено, просто ничего не делайте.
Что может быть, если этот обмен не работает, как я могу решить проблему а) в старом стиле способ б) Путь Панды?