यह प्रश्न का एक अनुवर्ती प्रश्न है जिसे मैंने here से पूछा था। वहां मैंने सीखा) कॉलम के लिए यह कैसे करें (नीचे देखें) और बी) कि पंक्तियों और स्तंभों का चयन आर में काफी अलग तरीके से संभाला जाता है जिसका अर्थ है कि मैं पंक्तियों के लिए एक ही दृष्टिकोण का उपयोग नहीं कर सकता।नामों के आधार पर कॉलम और पंक्तियों की एक श्रृंखला का चयन करके और अनुक्रमणिका में नहीं, डेटाफ्रेम का टुकड़ा कैसे करें?
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randint(10, size=(6, 6)),
columns=['c' + str(i) for i in range(6)],
index=["r" + str(i) for i in range(6)])
c0 c1 c2 c3 c4 c5
r0 4 2 3 9 9 0
r1 9 0 8 1 7 5
r2 2 6 7 5 4 7
r3 6 9 9 1 3 4
r4 1 1 1 3 0 3
r5 0 8 5 8 2 9
तो मैं आसानी से इस तरह पंक्तियों और स्तंभों उनके नाम से चुन सकते हैं::
print df.loc['r3':'r5', 'c1':'c4']
जो रिटर्न
c1 c2 c3 c4
r3 9 9 1 3
r4 1 1 3 0
r5 8 5 8 2
तो मैं इस तरह एक पांडा dataframe है लगता है
मैं आर में यह कैसे करूँगा? इस
df <- data.frame(c1=1:6, c2=2:7, c3=3:8, c4=4:9, c5=5:10, c6=6:11)
rownames(df) <- c('r1', 'r2', 'r3', 'r4', 'r5', 'r6')
c1 c2 c3 c4 c5 c6
r1 1 2 3 4 5 6
r2 2 3 4 5 6 7
r3 3 4 5 6 7 8
r4 4 5 6 7 8 9
r5 5 6 7 8 9 10
r6 6 7 8 9 10 11
जाहिर है की तरह एक dataframe को देखते हुए, अगर मैं अपने वांछित पंक्तियां/स्तंभ की अनुक्रमणिका पता है, मैं बस कर सकते हैं:
df[3:5, 1:4]
लेकिन मैं पंक्तियां हटाना हो सकता है/इतना है कि अपने विश्लेषण के दौरान कॉलम मैं सूचकांक की तुलना में नाम से चुनना चाहूंगा। लिंक से ऊपर मुझे पता चला कि स्तंभों के लिए निम्नलिखित काम करेगा:
subset(df, select=c1:c4)
जो
c1 c2 c3 c4
r1 1 2 3 4
r2 2 3 4 5
r3 3 4 5 6
r4 4 5 6 7
r5 5 6 7 8
r6 6 7 8 9
रिटर्न लेकिन कैसे मैं भी एक ही समय में नाम से पंक्तियों की श्रेणी का चयन कर सकता है?
इस विशेष मामले में मैं निश्चित रूप से grep
का उपयोग कर सकता हूं लेकिन मनमाना नामों वाले स्तंभों के बारे में कैसे?
और मैं
df[c('r3', 'r4' 'r5'), c('c1','c2', 'c3', 'c4')]
लेकिन एक वास्तविक टुकड़ा का उपयोग नहीं करना चाहते हैं।
हाँ, मैं चाहिए अधिक सटीक (मेरे प्रश्न को संपादित करेंगे): यह डब्ल्यू होना चाहिए मनमाने ढंग से नाम के लिए ओर्क; उन लोगों को वास्तव में पार्स करना आसान होगा :) – Cleb
ठीक है मैंने इसे पहले बहुत जल्दी पढ़ा है। क्या यही तुम्हें चाहिए था? – HubertL
बढ़िया! हाँ, यह ठीक काम करता है।मैं इसे अभी अपवित्र करता हूं और बाद में इसे अन्य उत्तरों की गुणवत्ता के आधार पर स्वीकार करता हूं। – Cleb