python - pandas DataFrame中设置索引的问题

标签 python pandas dataframe

我将给定代码的索引设置为国家/地区名称,但使用 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

最佳答案

使用一个或多个现有列设置 DataFrame 索引(行标签)。

您可以使用DataFrame.set_index(keys, drop=True,append=False, inplace=False, verify_integrity=False)

参数定义的位置:

keys : column label or list of column labels / arrays drop : boolean, default True

Delete columns to be used as the new index

append : boolean, default False

Whether to append columns to existing index

inplace : boolean, default False

Modify the DataFrame in place (do not create a new object)

verify_integrity : boolean, default False

Check the new index for duplicates. Otherwise defer the check until necessary. Setting to False will improve the performance of this method

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

关于python - pandas DataFrame中设置索引的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53993801/

相关文章:

python - 系列的长度与 np.where 不匹配

python - 删除 pandas 列中的前导零,但仅适用于数字

dataframe - 从每日数据的 DataFrame 绘制每周数据

python - 如何比较 Python 中的两个字典列表?

Python类属性报错AttributeError : can't set attribute

python - 加载pickle时出错

python - Python中RAW图像的JPEG解压缩

python - 条形图不尊重 matplotlib 中图例文本的顺序

python - 使用 pandas 将函数应用于每行的每个列值

python - 通过正则表达式用自身的子集替换 Pandas 列