जवाबों:
मैं उपयोग करूँगा iloc
, जो पूर्णांक स्थिति और सामान्य पायथन सिंटैक्स के आधार पर एक पंक्ति / स्तंभ टुकड़ा दोनों लेता है।
df.iloc[::5, :]
df.iloc[::5]
हालाँकि @ chrisb का स्वीकृत उत्तर प्रश्न का उत्तर देता है, मैं इसे निम्नलिखित में जोड़ना चाहूंगा।
एक सरल विधि जिसका उपयोग मैं nth
डेटा प्राप्त करने या nth
पंक्ति को छोड़ने के लिए करता हूं , वह है:
df1 = df[df.index % 3 != 0] # Excludes every 3rd row starting from 0
df2 = df[df.index % 3 == 0] # Selects every 3rd raw starting from 0
यह अंकगणित आधारित नमूनाकरण और भी अधिक जटिल पंक्ति-चयन को सक्षम करने की क्षमता रखता है।
यह मानता है , निश्चित रूप से, आपके पास 0 से शुरू होने वाले , निरंतर, पूर्णांकोंindex
का एक स्तंभ है ।
स्वीकृत उत्तर के लिए एक और भी सरल समाधान है जिसमें सीधे शामिल करना शामिल है df.__getitem__
।
df = pd.DataFrame('x', index=range(5), columns=list('abc'))
df
a b c
0 x x x
1 x x x
2 x x x
3 x x x
4 x x x
उदाहरण के लिए, हर 2 पंक्तियों को प्राप्त करने के लिए, आप कर सकते हैं
df[::2]
a b c
0 x x x
2 x x x
4 x x x
सूचकांक पर भी GroupBy.first
/ GroupBy.head
, आप समूह हैं:
df.index // 2
# Int64Index([0, 0, 1, 1, 2], dtype='int64')
df.groupby(df.index // 2).first()
# Alternatively,
# df.groupby(df.index // 2).head(1)
a b c
0 x x x
1 x x x
2 x x x
सूचकांक को स्ट्राइड द्वारा विभाजित किया गया है (2, इस मामले में)। यदि सूचकांक गैर-संख्यात्मक है, तो इसके बजाय करें
# df.groupby(np.arange(len(df)) // 2).first()
df.groupby(pd.RangeIndex(len(df)) // 2).first()
a b c
0 x x x
1 x x x
2 x x x
df.iloc[1::5, :]
।