मैंने डेटा को श्रेणियों के साथ बिन करने के लिए qcut का उपयोग किया। लेकिन मैं पांडा हिस्टोग्राम में आउटपुट रेंज डेटा प्रदर्शित करना चाहता हूं। तो, मैं यह कैसे करूँ? ps: डेटा एक csv फ़ाइल से एकत्र किया जाता है लिंक:सीएसवी फ़ाइल लिंक यहां

मैंने निम्नलिखित कोड लिखे -

import matplotlib.pyplot as plt
import pandas as pd
from sklearn.metrics import r2_score

dataset = pd.read_csv("datasets.csv")
print(dataset)


qc = pd.qcut(dataset['Active'], q=8, precision=0)
qc_val = qc.value_counts().sort_index()
print(qc_val)

बाइनिंग रेंज आउटपुट है-

(-1.0, 63.0]          5
(63.0, 212.0]         5
(212.0, 827.0]        4
(827.0, 1465.0]       8
(1465.0, 1959.0]      2
(1959.0, 4545.0]      4
(4545.0, 8594.0]      5
(8594.0, 221447.0]    5
Name: Active, dtype: int64

तो, क्या उपरोक्त बाइनिंग रेंज डेटा से हिस्टोग्राम प्रदर्शित करने का कोई तरीका है?

0
Fury 9 जिंदा 2021, 14:46

1 उत्तर

सबसे बढ़िया उत्तर

आप किसी श्रृंखला के हिस्टोग्राम फ़ंक्शन में सीधे bins पैरामीटर का उपयोग कर सकते हैं, जैसे

import pandas as pd

url = 'https://drive.google.com/file/d/1lYZqeYH_AtUAUG5947Bd51JXJBrOP5Lp/view?usp=sharing'
path = 'https://drive.google.com/uc?export=download&id='+url.split('/')[-2]
df = pd.read_csv(path)
df['Active'].hist(bins=8)

possible hist

या qcut के लेबल के साथ आप इसे इस तरह इस्तेमाल कर सकते हैं

levels = [f'Level_{i}' for i in range(8)]
df['Active_bins'] = pd.qcut(df['Active'], q=8, precision=0, labels=levels)
df.head()

Data with labels

# from https://stackoverflow.com/a/58288640/7752347
import matplotlib.pyplot as plt

fig,ax = plt.subplots()

hatches = ('\\', '//', '..', '**', "!", '$', '^','#')         # fill pattern

for (i, d),hatch in zip(df.groupby('Active_bins'), hatches):
    d['Active'].hist(alpha=0.7, ax=ax, label=i, hatch=hatch)

ax.legend()

Patterned hist

1
Manimaran Paneerselvam 9 जिंदा 2021, 15:55
विस्तृत उत्तर के लिए धन्यवाद। मैंने इसे ऑनलाइन ज्यूपिटर पर आजमाया और यह चलता है लेकिन बनामकोड में हिस्टोग्राम नहीं दिखता है। क्या आप कोई कारण जानते हैं?
 – 
Fury
9 जिंदा 2021, 16:15
1
मान लें कि vscode में का अर्थ है एक स्क्रिप्ट में, स्क्रिप्ट के अंत में plt.show() जोड़ने से प्लॉट छवि के साथ एक पॉपअप खुल जाना चाहिए, ref:यहां
 – 
Manimaran Paneerselvam
9 जिंदा 2021, 16:21