2015-09-01 13 views
6

क्या सीरीज़ में सीधे डेटाफ्रेम में शामिल होने का कोई तरीका है?डेटाफ्रेम पर श्रृंखला में कैसे शामिल हों?

में शामिल होने dataframe के मैदान पर और श्रृंखला के सूचकांक पर किया जाएगा।

एक ही रास्ता मैंने पाया पहले, एक dataframe को श्रृंखला कन्वर्ट करने के लिए नीचे दिए गए कोड में के रूप में किया गया था।

import numpy as np 
import pandas as pd 

df = pd.DataFrame() 
df['a'] = np.arange(0, 4) 
df['b'] = np.arange(100, 104) 


s = pd.Series(data=np.arange(100, 103)) 

# this doesn't work 
# myjoin = pd.merge(df, s, how='left', left_on='a', right_index=True) 

# this does 
s = s.reset_index() 
# s becomes a Dataframe 
# note you cannot reset the index of a series inplace 
myjoin = pd.merge(df, s, how='left', left_on='a', right_on='index') 

print myjoin 
+1

क्षमा करें क्या आप सिर्फ एक नया कॉलम जोड़ने के लिए कह रहे हैं उदा। 'Df ['new_col'] = df ['a']। नक्शा (ओं)'? – EdChum

+0

मेरा मानना ​​है कि आपके प्रश्न में समाधान ('s'' reset_index() 'के साथ डेटाफ्रेम बनाने के लिए सही समाधान है। – itzy

+0

मैं dataframe को सीरीज में स्तंभ जोड़ने के लिए चाहते हैं, लेकिन मैं कैसे है कि क्या यह एक छोड़ दिया बाहरी में शामिल होने या एक आंतरिक में शामिल होने होना चाहिए निर्दिष्ट करते हैं, और कैसे मैं जो dataframe श्रृंखला के सूचकांक से मेल खाना चाहिए के स्तंभ निर्दिष्ट करूँ? धन्यवाद –

उत्तर

0

कोशिश concat():

import numpy as np 
import pandas as pd 

df= pd.DataFrame() 
df['a']= np.arange(0,4) 
df['b']= np.arange(100,104) 

s =pd.Series(data = np.arange(100,103)) 

new_df = pd.concat((df, s), axis=1) 
print new_df 

यह प्रिंट:

a b 0 
0 0 100 100 
1 1 101 101 
2 2 102 102 
3 3 103 NaN 
3

मुझे लगता है कि http://pandas.pydata.org/pandas-docs/stable/generated/pandas.concat.html मदद कर सकता है।

उदाहरण के लिए आंतरिक/बाहरी में शामिल हो।

pd.concat((df,s), axis=1) 
Out[26]: 
    a b 0 
0 0 100 100 
1 1 101 101 
2 2 102 102 
3 3 103 NaN 

In [27]: pd.concat((df,s), axis=1, join='inner') 
Out[27]: 
    a b 0 
0 0 100 100 
1 1 101 101 
2 2 102 102 
+2

क्या यह सूचकांक में शामिल है? मेरे मामले में, सूचकांक अलग हैं, और मैं खेतों पर शामिल होने के लिए निर्दिष्ट करना चाहते हैं, लेकिन concat पर, left_on है प्रतीत नहीं होता है, pd.merge तरह right_on मापदंडों –

+0

हाँ, यह अनुक्रमित पर मिलती है। केवल इस भाग को हल करता है >> मैं सीरीज़ में डेटाफ्रेम पर कॉलम जोड़ना चाहता हूं, लेकिन मैं यह कैसे निर्दिष्ट करूं कि यह बाएं बाहरी जुड़ना चाहिए या आंतरिक में – Alex

+0

मिमीएम शामिल होना चाहिए, इसलिए श्रृंखला से डेटाफ्रेम में कनवर्ट करने का एकमात्र तरीका है reset_index के साथ? यह इंडेक्स को एक कॉलम में परिवर्तित करता है, जो मर्ज फ़ंक्शन के परिणाम में जोड़ा जाता है। इसलिए मुझे इसे हटाने की आवश्यकता होगी। यह सब अनावश्यक रूप से गड़बड़ लगता है! –

0

एक बहुत देर से इस सवाल का जवाब है कि है, लेकिन क्या काम किया मुझे कॉलम आपको आपके श्रृंखला में प्राप्त करना चाहते हैं के साथ एक dataframe, नाम सूचकांक आप की जरूरत के रूप में इस श्रृंखला का निर्माण किया गया था के लिए, dataframe को श्रृंखला संलग्न (यदि आपके पास श्रृंखला में पूरक तत्व हैं, तो उन्हें डेटाफ्रेम में जोड़ा जाता है, जो कि कुछ एप्लिकेशन में सुविधाजनक हो सकता है), फिर इस इंडेक्स द्वारा अंतिम डेटाफ्रेम में उस मूल डेटाफ्रेम में शामिल हों, जिसे आप विस्तारित करना चाहते हैं। सहमत है कि यह प्रत्यक्ष नहीं है, लेकिन यह अभी भी सबसे सुविधाजनक तरीका है यदि आपके पास डेटाफ्रेम में प्रत्येक को बदलने की बजाय बहुत सी श्रृंखला है।

संबंधित मुद्दे