У меня есть несколько столбцов данных с колонками [«Страна», «Энергоснабжение», «Энергоснабжение на душу населения», «% возобновляемых источников»] .
В энергоснабжениистолбец, я хочу преобразовать единицу столбца в Пета из гига.Но в процессе energy['Energy Supply']*= energy['Energy Supply']
, когда значение равно «....» (пропущенное значение обозначается этим), оно также умножается или, скажем, дублируется.Кроме того, значение строки в столбце также умножается.(Например, оригинал: Peta, после операции: PetaPetaPetaPeta ...).
Чтобы не допустить этого, я запускаю это:
energy = pd.read_excel("Energy Indicators.xls",skiprows = 16, skip_footer = 38)
energy.drop(['Unnamed: 0','Unnamed: 1'],axis = 1, inplace = True)
energy.columns = ['Country', 'Energy Supply', 'Energy Supply per Capita', '% Renewable']
for i in energy['Energy Supply']:
if (isinstance(energy[i],int) == True):
energy['Energy Supply'][i]=energy['Energy Supply'][i]*1000000
return (energy)
Но я не получаю результат, т.е.изменить значение только переменных целочисленного типа, и ничего не изменится.
Там, где, я думаю, заключается проблема, первые две строки дадут условие false , как и первые строки "Строка "и, исходя из этого, программа не изменяет значения, в то время как я хочу индивидуально проверить, имеет ли значение целочисленный тип, и, если это так, умножает число на 1 000 000.
Вход:
Country Energy Supply Energy Supply per Capita % Renewable
0 NaN Petajoules Gigajoules %
1 Afghanistan 321 10 78.6693
2 Albania 102 35 100
3 Algeria 1959 51 0.55101
4 American Samoa ... ... 0.641026
Ожидаемый выход:
Country Energy Supply Energy Supply per Capita % Renewable
0 NaN Petajoules Gigajoules %
1 Afghanistan 3210000 10 78.6693
2 Albania 1020000 35 100
3 Algeria 19590000 51 0.55101
4 American Samoa ... ... 0.641026
Токовый выход:
Country Energy Supply Energy Supply per Capita % Renewable
0 NaN PetajoulesPeta. Gigajoules %
1 Afghanistan 3210000 10 78.6693
2 Albania 1020000 35 100
3 Algeria 19590000 51 0.55101
4 American Samoa ........ ... 0.641026