pandas 0.23 - 28. Comparison with R / R libraries

आर / आर पुस्तकालयों के साथ तुलना




pandas

आर / आर पुस्तकालयों के साथ तुलना

चूंकि pandas उद्देश्य बहुत अधिक डेटा हेरफेर और विश्लेषण कार्यक्षमता प्रदान करना है जिसका उपयोग लोग R लिए करते हैं, इस पृष्ठ को आर भाषा और इसके कई तीसरे पक्ष के पुस्तकालयों पर अधिक विस्तृत रूप प्रदान करने के लिए शुरू किया गया था क्योंकि वे pandas से संबंधित हैं। R और CRAN पुस्तकालयों की तुलना में, हम निम्नलिखित बातों की परवाह करते हैं:

  • कार्यक्षमता / लचीलापन : प्रत्येक उपकरण के साथ क्या किया जा सकता है / नहीं किया जा सकता है
  • प्रदर्शन : ऑपरेशन कितने तेज़ हैं। हार्ड नंबर / बेंचमार्क बेहतर हैं
  • उपयोग में आसानी : क्या एक उपकरण का उपयोग करना आसान / कठिन है (आपको इसके बारे में जज बनना हो सकता है, साइड-बाय-कोड कोड की तुलना में)

इन आर संकुल के उपयोगकर्ताओं के लिए अनुवाद गाइड का एक सा प्रस्ताव देने के लिए यह पृष्ठ भी यहाँ है।

pandas से आर से DataFrame ऑब्जेक्ट्स के हस्तांतरण के लिए, एक विकल्प एचडीएफ 5 फ़ाइलों का उपयोग करना है, उदाहरण के लिए बाहरी संगतता देखें।

त्वरित संदर्भ

हम एक त्वरित संदर्भ गाइड के साथ शुरुआत करेंगे, जो पंडों के समकक्षों के साथ dplyr का उपयोग करते हुए कुछ सामान्य आर ऑपरेशंस को dplyr

क्वेरी करना, फ़िल्टर करना, नमूना लेना

आर पांडा
dim(df) df.shape
head(df) df.head()
slice(df, 1:10) df.iloc[:9]
filter(df, col1 == 1, col2 == 1) df.query('col1 == 1 & col2 == 1')
df[df$col1 == 1 & df$col2 == 1,] df[(df.col1 == 1) & (df.col2 == 1)]
select(df, col1, col2) df[['col1', 'col2']]
select(df, col1:col3) df.loc[:, 'col1':'col3']
select(df, -(col1:col3)) df.drop(cols_to_drop, axis=1) लेकिन देखें [1]
distinct(select(df, col1)) df[['col1']].drop_duplicates()
distinct(select(df, col1, col2)) df[['col1', 'col2']].drop_duplicates()
sample_n(df, 10) df.sample(n=10)
sample_frac(df, 0.01) df.sample(frac=0.01)
[1] स्तंभों की एक व्यवस्था के लिए R का आशुलिपि ( select(df, col1:col3) ) पंडों में सफाई से संपर्क किया जा सकता है, यदि आपके पास स्तंभों की सूची है, उदाहरण के लिए df[cols[1:3]] या df.drop(cols[1:3]) , लेकिन कॉलम नाम से ऐसा करना थोड़ा गड़बड़ है।

छंटाई

आर पांडा
arrange(df, col1, col2) df.sort_values(['col1', 'col2'])
arrange(df, desc(col1)) df.sort_values('col1', ascending=False)

बदलने

आर पांडा
select(df, col_one = col1) df.rename(columns={'col1': 'col_one'})['col_one']
rename(df, col_one = col1) df.rename(columns={'col1': 'col_one'})
mutate(df, c=ab) df.assign(c=df.a-df.b)

ग्रुपिंग और समराइजिंग

आर पांडा
summary(df) df.describe()
gdf <- group_by(df, col1) gdf = df.groupby('col1')
summarise(gdf, avg=mean(col1, na.rm=TRUE)) df.groupby('col1').agg({'col1': 'mean'})
summarise(gdf, total=sum(col1)) df.groupby('col1').sum()

बेस आर

आर के c साथ स्लाइसिंग

R नाम से data.frame कॉलम एक्सेस करना आसान बनाता है

df <- data.frame(a=rnorm(5), b=rnorm(5), c=rnorm(5), d=rnorm(5), e=rnorm(5))
df[, c("a", "c", "e")]

या पूर्णांक स्थान के द्वारा

df <- data.frame(matrix(rnorm(1000), ncol=100))
df[, c(1:10, 25:30, 40, 50:100)]

pandas में नाम से कई कॉलम का चयन करना सीधा है

In [1]: df = pd.DataFrame(np.random.randn(10, 3), columns=list('abc'))

In [2]: df[['a', 'c']]
Out[2]: 
          a         c
0 -1.039575 -0.424972
1  0.567020 -1.087401
2 -0.673690 -1.478427
3  0.524988  0.577046
4 -1.715002 -0.370647
5 -1.157892  0.844885
6  1.075770  1.643563
7 -1.469388 -0.674600
8 -1.776904 -1.294524
9  0.413738 -0.472035

In [3]: df.loc[:, ['a', 'c']]