我将给定代码的索引设置为国家/地区名称,但使用 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)
输出:
关于python - pandas DataFrame中设置索引的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53993801/