我正在尝试显示每一列的百分比并遇到错误-IndexError:索引3超出了轴3的大小3的范围
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
% matplotlib inline
import seaborn as sns
df = pd.read_csv('https://github.com/Kevin-ck1/Intro-To-Data-Science/raw/master/hotel_bookings.csv')
df_booking = df.copy()
df_booking['percentage'] = round(df_booking['arrival_date_year']/df_booking['arrival_date_year'].sum() * 100, 1)
df_booking['arrival_date_year'].value_counts(dropna=True).plot(kind="bar")
xlocs, xlabs = plt.xticks()
for i, v in enumerate(df_booking['percentage']):
plt.text(xlocs[i] - 0.08, v + 25, str(v) + '%', fontsize = 15)
plt.title('Booking')
plt.show()
给出的错误信息是
IndexError Traceback (most recent call last)
<ipython-input-59-07b4659a45f8> in <module>()
21 for i, v in enumerate(df_booking['percentage']):
22
---> 23 plt.text(xlocs[i] - 0.08, v + 25, str(v) + '%', fontsize = 15)
24
25 plt.title('Booking')
IndexError: index 3 is out of bounds for axis 0 with size 3
使用当前的代码,可以存储计数,然后计算百分比,然后使用百分比添加刻度线:
counts = df['arrival_date_year'].value_counts(dropna=True)
perc = round(100*counts/counts.sum(),1).to_numpy()
counts.plot(kind="bar")
xlocs, xlabs = plt.xticks()
for i in range(len(da)):
plt.text(xlocs[i] - 0.08, counts.iloc[i] + 25, str(perc[i]) + '%', fontsize = 10)
plt.title('Booking')
plt.show()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句