Мне может быть что-то очень простое здесь, но у меня есть функция, которая отображает гистограммы для определенного столбца из фреймворка Pandas в определенные промежутки времени. В моей функции я хочу передать имя столбца в качестве аргумента. Это то, что у меня есть до сих пор.Pandas - Как передать имя столбца в функции
def make_hist(data,column_name):
start=datetime(2013,11,1)
end=datetime(2013,11,30)
rng=pd.date_range(start,end)
start2=datetime(2013,10,1)
end2=datetime(2013,10,30)
rng2=pd.date_range(start2,end2)
start3=datetime(2013,9,1)
end3=datetime(2013,9,30)
rng3=pd.date_range(start3,end3)
start4=datetime(2013,8,1)
end4=datetime(2013,8,30)
rng4=pd.date_range(start4,end4)
start5=datetime(2013,7,1)
end5=datetime(2013,7,30)
rng5=pd.date_range(start5,end5)
start6=datetime(2013,12,1)
end6=datetime(2013,12,30)
rng6=pd.date_range(start6,end6)
plt.subplot(611)
data.ix[rng6].column_name.hist(bins=[0,30,60,90,120,150,180,210,240,270,300]).plot()
plt.title('December')
plt.ylim(0,300)
plt.xlim(0,300)
plt.subplot(612)
data.ix[rng].column_name.hist(bins=[0,30,60,90,120,150,180,210,240,270,300]).plot()
plt.title('November')
plt.ylim(0,300)
plt.xlim(0,300)
plt.subplot(613)
data.ix[rng2].column_name.hist(bins=[0,30,60,90,120,150,180,210,240,270,300]).plot()
plt.title('October')
plt.ylim(0,300)
plt.xlim(0,300)
plt.subplot(614)
data.ix[rng3].column_name.hist(bins=[0,30,60,90,120,150,180,210,240,270,300]).plot()
plt.title('September')
plt.ylim(0,300)
plt.xlim(0,300)
plt.subplot(615)
data.ix[rng4].column_name.hist(bins=[0,30,60,90,120,150,180,210,240,270,300]).plot()
plt.title('August')
plt.ylim(0,300)
plt.xlim(0,300)
plt.subplot(616)
data.ix[rng5].column_name.hist(bins=[0,30,60,90,120,150,180,210,240,270,300]).plot()
plt.title('July')
plt.ylim(0,300)
plt.xlim(0,300)
plt.show()
Проблема заключается в том, что я не знаю, какой тип данных аргумента column_name
должно быть. Это не может быть строка, и она не может быть переменной, потому что я не знаю, как бы я ее определял. Я чувствую, что есть простой способ сделать это, которого я просто не вижу.
EDIT: добавление описания данных. Выход data.dtypes
является
account int64
first_active object
datelatest_inactive datetime64[ns]
days_active int64
dtype: object
и мой индекс на datelatest_inactive
колонке
Не могли бы вы привести небольшой пример вашего фрейма данных (скажем, два или три очка за каждый месяц)? Всегда легче тестировать код, когда вы можете видеть, на что он должен действовать. – DSM
Я не могу этого сделать, потому что данные содержат очень личную информацию. Я мог бы дать вам вывод data.dtypes, если это поможет – user1893354
Фактические данные не имеют значения. Что-то, что мы можем скопировать и вставить, поэтому нам не нужно тратить время, издеваясь над нашим собственным примером, считается обычным (см. [SSCCE.org] (http://sscce.org)). – DSM