उप-शीर्षक को अनदेखा करें: इसे नीचे दबाएं, चतुर होने की कोशिश करना बंद करें।पांडा डेटा फ्रेम की कॉन्सट सूची, लेकिन कॉलम नाम
मेरे पास सिंगल-कॉलम पांडा डेटा फ्रेम की एक सूची (res
) है, प्रत्येक में समान संख्यात्मक डेटा होता है, लेकिन प्रत्येक एक अलग कॉलम नाम वाला होता है। पंक्ति सूचकांक का कोई मतलब नहीं है। मैं उन्हें एक एकल, बहुत लंबा, सिंगल-कॉलम डेटा फ्रेम में रखना चाहता हूं।
जब मैं pd.concat(res)
करता हूं तो मुझे एक इनपुट प्रति इनपुट फ़ाइल (और लोड और नाएन कोशिकाओं का भार) मिलता है। मैंने पैरामीटर (*) के लिए विभिन्न मानों का प्रयास किया है, लेकिन कोई भी जो मैं करता हूं उसके बाद करता हूं।
संपादित करें: नमूना डेटा: हर डेटा फ्रेम को कॉपी करें और एक नया स्तंभ नाम देने: है कि सबसे अच्छा तरीका नहीं है
newList = []
for r in res:
r.columns = ["same"]
newList.append(r)
pd.concat(newList, ignore_index=True)
निश्चित रूप से
res = [
pd.DataFrame({'A':[1,2,3]}),
pd.DataFrame({'B':[9,8,7,6,5,4]}),
pd.DataFrame({'C':[100,200,300,400]}),
]
मैं एक बदसूरत-हैक समाधान है इसे करने के लिए??
बीटीडब्ल्यू, pandas: concat data frame with different column name समान है, लेकिन मेरा प्रश्न भी सरल है, क्योंकि मैं इंडेक्स को बनाए रखना नहीं चाहता हूं। (मैं एन सिंगल-कॉलम डेटा फ्रेम की एक सूची से भी शुरू करता हूं, न कि एक एन-कॉलम डेटा फ्रेम।)
*: उदा। axis=0
डिफ़ॉल्ट व्यवहार है। axis=1
एक त्रुटि देता है। join="inner"
सिर्फ मूर्ख है (मुझे केवल सूचकांक मिलता है)। ignore_index=True
इंडेक्स को किराए पर लेता है, लेकिन मुझे बहुत सारे कॉलम मिलते हैं, बहुत सारे NaNs।
खाली सूचियों के लिए अद्यतन
मैं समस्याओं (सभी दिया समाधान के साथ) हो रही थी जब डेटा एक खाली सूची थी, कुछ की तरह:
res = [
pd.DataFrame({'A':[1,2,3]}),
pd.DataFrame({'B':[9,8,7,6,5,4]}),
pd.DataFrame({'C':[]}),
pd.DataFrame({'D':[100,200,300,400]}),
]
चाल के लिए गया था .astype('float64')
जोड़कर, प्रकार को मजबूर करें। जैसे
pd.Series(np.concatenate([df.values.ravel().astype('float64') for df in res]))
या:
pd.concat(res,axis=0).astype('float64').stack().reset_index(drop=True)
'pd.concat ([x.rename (कॉलम = लैम्ब्डा सी:' वही ') x में res के लिए हो सकता है], ignore_index = True) ' – jrovegno
समय के लिए धन्यवाद; यह इस मामले में समय संवेदनशील नहीं था, लेकिन अगर मुझे कभी भी बड़ी मात्रा में डेटा की आवश्यकता होती है तो सबसे तेज़ मुहावरे को जानना अच्छा होता है। –