পান্ডস গ্রুপবাইয়ের মূল্যসীমা


92

প্যানডাসে কি কোনও groupbyমূল্য বহির্ভূত মূল্য সঞ্চার করার জন্য সহজ পদ্ধতি আছে ? উদাহরণস্বরূপ নীচের উদাহরণটি দেওয়া হিসাবে আমি বিন এবং গ্রুপ কলামটি বর্ধিতকরণের Bসাথে করতে পারি 0.155যাতে উদাহরণস্বরূপ, কলামের প্রথম দুটি দম্পতি B'0 - 0.155, 0.155 - 0.31 ... এর মধ্যে বিস্তৃত হয় `

import numpy as np
import pandas as pd
df=pd.DataFrame({'A':np.random.random(20),'B':np.random.random(20)})

     A         B
0  0.383493  0.250785
1  0.572949  0.139555
2  0.652391  0.401983
3  0.214145  0.696935
4  0.848551  0.516692

বিকল্পভাবে আমি প্রথমে সেই ইনক্রিমেন্টগুলির দ্বারা ডেটাটিকে একটি নতুন কলামে শ্রেণিবদ্ধ করতে পারি এবং পরে groupbyকলামে প্রযোজ্য কোনও প্রাসঙ্গিক পরিসংখ্যান নির্ধারণ করতে ব্যবহার করতে Aপারি?

উত্তর:


132

আপনি আগ্রহী হতে পারে pd.cut:

>>> df.groupby(pd.cut(df["B"], np.arange(0, 1.0+0.155, 0.155))).sum()
                      A         B
B                                
(0, 0.155]     2.775458  0.246394
(0.155, 0.31]  1.123989  0.471618
(0.31, 0.465]  2.051814  1.882763
(0.465, 0.62]  2.277960  1.528492
(0.62, 0.775]  1.577419  2.810723
(0.775, 0.93]  0.535100  1.694955
(0.93, 1.085]       NaN       NaN

[7 rows x 2 columns]

11
আমার পক্ষে একাধিক মাত্রার জন্য এটি করা সম্ভব? মূলত এক সাথে দুটি মান দ্বারা গ্রুপিং?
ম্যাডস্ট্যাক্স

13

এটা চেষ্টা কর:

df = df.sort('B')
bins =  np.arange(0,1.0,0.155)
ind = np.digitize(df['B'],bins)

print df.groupby(ind).head()

অবশ্যই আপনি গ্রুপগুলিতে কোনও ফাংশন ব্যবহার করতে পারেন head

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.