проблема в настройке индекса в пандах DataFrame - PullRequest
0 голосов
/ 01 января 2019

Я устанавливаю индекс для данного кода в качестве имени страны, но с использованием dataframe.set_index (index_name).Я не могу обновить индекс данных.В настоящее время я работаю над Python 3.7, почему этот код не настраивает индекс?

import pandas as pd
import numpy as np

df1 = pd.DataFrame({'Country':['Nigeria','Bangladesh','China'],
                    'population':[89765,98744,654520],
                    'Birth_Rate':[23.54,34.43,20.3],
                    'Update_Date':['2016-01-18','2016-02-15','2016-02-03']},
                    columns = ['Country','population','Birth_Rate','Update_Date'])                                                        

df2 = pd.DataFrame({'Country':['India','Sri Lanka','Dubai'],
                    'population':[98343,2453,57432],
                    'Birth_Rate':[33.54,44.44,23.3],
                    'Update_Date':['2016-01-18','2016-02-15','2016-02-03']},
                    columns =['Country','population','Birth_Rate','Update_Date']) 

df3 = df2.append(df1)
df3.set_index('Country')
print(df3)

Я ожидаю это в качестве вывода:

      Country   population  Birth_Rate Update_Date
0       India       98343       33.54  2016-01-18
1   Sri Lanka        2453       44.44  2016-02-15
2       Dubai       57432       23.30  2016-02-03
0     Nigeria       89765       23.54  2016-01-18
1  Bangladesh       98744       34.43  2016-02-15
2       China      654520       20.30  2016-02-03

but actual output is:
            population  Birth_Rate   Update_Date
Country    
 India       98343       33.54      2016-01-18                               
 Sri Lanka   2453        44.44      2016-02-15
 Dubai       57432       23.30      2016-02-03
 Nigeria     89765       23.54      2016-01-18
 Bangladesh  98744       34.43      2016-02-15
 China       654520      20.30      2016-02-03

1 Ответ

0 голосов
/ 01 января 2019

Чтобы установить индекс DataFrame (метки строк), используя один или несколько существующих столбцов.

Вы можете использовать DataFrame.set_index(keys, drop=True, append=False, inplace=False, verify_integrity=False)

Где параметры определяют:

ключи: метка столбца или список меток / массивов столбцов drop: boolean, default True

Удалить столбцы, которые будут использоваться в качестве нового индекса

append: boolean, default False

Добавлять ли столбцы в существующий индекс

на месте: логическое значение, по умолчанию False

Изменить на месте DataFrame (не создавать новый объект)

verify_integrity: boolean,по умолчанию False

Проверьте новый индекс на наличие дубликатов.В противном случае отложите проверку до необходимого.Установка в False улучшит производительность этого метода

import pandas as pd
import numpy as np

df1 = pd.DataFrame({'Country':['Nigeria','Bangladesh','China'],
                    'population':[89765,98744,654520],
                    'Birth_Rate':[23.54,34.43,20.3],
                    'Update_Date':['2016-01-18','2016-02-15','2016-02-03']},
                    columns = ['Country','population','Birth_Rate','Update_Date'])                                                        

df2 = pd.DataFrame({'Country':['India','Sri Lanka','Dubai'],
                    'population':[98343,2453,57432],
                    'Birth_Rate':[33.54,44.44,23.3],
                    'Update_Date':['2016-01-18','2016-02-15','2016-02-03']},
                    columns =['Country','population','Birth_Rate','Update_Date']) 

df3 = df2.append(df1)
df3.set_index('Country', inplace = True, 
                            append = True, drop = True)
print(df3)

ВЫХОД:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...