Python 使用pandas对数据帧进行取整和排序
在代码的底部,关于问题3,我试图对数据进行平均、舍入和排序,但是由于某种原因,舍入和排序根本不起作用Python 使用pandas对数据帧进行取整和排序,python,pandas,Python,Pandas,在代码的底部,关于问题3,我试图对数据进行平均、舍入和排序,但是由于某种原因,舍入和排序根本不起作用 i = df.columns.get_loc('2006') avgGDP = df[df.columns[i:]].copy() avgGDP = avgGDP.mean(axis=1).round(2).sort_values(ascending=False) avgGDP 我做错了什么 这是在应用平均、舍入和排序之前df的样子。 您的序列实际上已排序,第一行是1.5e+13,最后一行是4
i = df.columns.get_loc('2006')
avgGDP = df[df.columns[i:]].copy()
avgGDP = avgGDP.mean(axis=1).round(2).sort_values(ascending=False)
avgGDP
我做错了什么
这是在应用平均、舍入和排序之前df的样子。
您的序列实际上已排序,第一行是
1.5e+13
,最后一行是4.4e+11
:
Country
United States 1.536434e+13
China 6.348609e+12
Japan 5.542208e+12
Germany 3.493025e+12
France 2.681725e+12
United Kingdom 2.487907e+12
Brazil 2.189794e+12
Italy 2.120175e+12
India 1.769297e+12
Canada 1.660648e+12
Russian Federation 1.565460e+12
Spain 1.418078e+12
Australia 1.164043e+12
South Korea 1.106714e+12
Iran 4.441558e+11
舍入在这里不起任何作用,因为最小的值是4e+11
,舍入到小数点后2位不会显示在此刻度上。如果您想在科学记数法中只保留两位小数,可以使用.map({:0.2e}.format)
,请参阅下面的注释
注意:只是为了好玩,你也可以用一行代码来计算:
df.filter(regex='^2').mean(1).sort_values()[::-1].map('{:0.2e}'.format)
输出:
Country
United States 1.54e+13
China 6.35e+12
Japan 5.54e+12
Germany 3.49e+12
France 2.68e+12
United Kingdom 2.49e+12
Brazil 2.19e+12
Italy 2.12e+12
India 1.77e+12
Canada 1.66e+12
Russian Federation 1.57e+12
Spain 1.42e+12
Australia 1.16e+12
South Korea 1.11e+12
Iran 4.44e+11
你的df是什么?到目前为止,你对所有其他问题都做了完全相同的回答吗?我认为最好是你给我们看你的确切代码,看看可能出了什么问题。Github link在每个单元的基础上提供了所有内容、代码和输出。