У меня есть DataFrame с columnA
с целочисленными значениями в диапазоне от -3 до 89. Я хочу выбрать все строки со значениями в columnA
между дискретными 10 единицами, например,
-10до 0
0 до 10 ...
80 до 90
Я могу создать список количества строк в каждом бине, как показано ниже:
pd.cut(DataFrame['columnA'], np.arange(-10, 100, 10), include_lowest=True, labels=False).value_counts().sort_index().to_list()
, что приводит квот такой список:
[505, 25000, 21, 393, 79232, 953000, 24121, 662, 50, 900]
Теперь, если я хочу просмотреть все строки в первом бине, я могу выбрать их следующим образом:
DataFrame.sort_values('columnA', ascending=True).iloc[0:505]
Как я могунаписать функцию для выбора всех строк в ячейке N?
Редактировать: это работает, но только для ячейки 0. Если я использую iloc для, скажем, ячейки 1, мне нужно начать в концебен 0 и тд. Это та часть, где у меня возникают трудности.
def bin_func(DataFrame, N):
bins = pd.cut(DataFrame['columnA'], np.arange(-10, 100, 10), include_lowest=True, labels=False).value_counts().sort_index().to_list()
if N == 0:
return DataFrame.sort_values('columnA', ascending=True).iloc[0:bins[N]]
else:
return None