तो मेरे पास कई कॉलम वाले पांडा में डेटाफ्रेम है।

जैसा कि नीचे दिखाया गया है, एक कॉलम में [u'str',] से सीमांकित स्ट्रिंग्स की एक सूची है। प्रत्येक पंक्ति में समान संख्या में तार नहीं होते हैं।

column x
[u'str1', u'str2', u'str3']
[u'str4', u'str1']
[u'str5', u'str7', u'str8', u'str9']

मैं कॉलम x-1, कॉलम x-2 तक x-n . नामक डेटाफ्रेम में नए कॉलम बनाना चाहता हूं

मैं कैसे करूं:

  1. पता लगाएँ कि मुझे कितने नए कॉलम चाहिए (अर्थात सबसे बड़ी सूची में कितने सदस्य हैं?)
  2. उल्लिखित नामकरण का उपयोग करके कई कॉलम बनाएं।
  3. सबसे महत्वपूर्ण: स्ट्रिंग्स को नए कॉलम में विभाजित करें, केवल सिंगल कोट्स के बीच जो है उसे छोड़कर (यानी यू, ', और कॉमा खो दें)

attempted code

1
Sharkfan1781110 30 जुलाई 2018, 06:51
इसी तरह का एक प्रश्न यहां मिला: सीमांकक पांडा द्वारा स्तंभों की संख्या"> stackoverflow.com/questions/50069693/…
 – 
Sharkfan1781110
31 जुलाई 2018, 06:32

2 जवाब

यदि "कॉलम x" सूचियों का स्तंभ है, तो आप एक नया डेटाफ़्रेम बनाने के लिए स्तंभ को एक श्रृंखला के रूप में पास कर सकते हैं।

df['column x']
0    [a, b, c]
1          [d]
2       [e, f]
dtype: object

df2 = pd.DataFrame(
    df['column x'].tolist()).rename(lambda x: 'x-{}'.format(x + 1), axis=1)
df2

  x-1   x-2   x-3
0   a     b     c
1   d  None  None
2   e     f  None

इन स्तंभों को वापस df में जोड़ने के लिए, pd.concat का उपयोग करें:

df = pd.concat([df, df2, axis=1])
3
cs95 30 जुलाई 2018, 06:55
मुझे त्रुटि मिलती है 'तानाशाह' वस्तु में कोई विशेषता नहीं है 'प्रारूप'
 – 
Sharkfan1781110
30 जुलाई 2018, 07:00
कृपया कोड को टाइप करने के बजाय कॉपी करें। आपने इसे ठीक से टाइप नहीं किया।
 – 
cs95
30 जुलाई 2018, 07:05
ठीक है कि त्रुटि दूर हो गई लेकिन अब यह एक कॉलम में है। हम परिसीमनकर्ता को कहाँ परिभाषित करते हैं?
 – 
Sharkfan1781110
30 जुलाई 2018, 07:05
df['column x'].head(5) चलाएं और अपने प्रश्न में आउटपुट पोस्ट करें, अन्यथा मैं मदद नहीं कर सकता।
 – 
cs95
30 जुलाई 2018, 07:06
मूल पोस्ट से याद रखें u'str3' को str3 पर जाने की आवश्यकता है
 – 
Sharkfan1781110
30 जुलाई 2018, 07:06

तो इस प्रश्न का सटीक कोड है:

df_test['actors_list'] = df_m.actors_list.str.split('u\'') #splits based on deliminator u' (the \ is the escape character)
df_test2 = pd.DataFrame(
    df_test['actors_list'].tolist()).rename(lambda x: 'actors_list-{}'.format(x + 1), axis=1)
df_test2
0
Sharkfan1781110 1 अगस्त 2018, 23:54