एक पांडा DataFrame
ऑब्जेक्ट में खाली कॉलम जोड़ने का सबसे आसान तरीका क्या है? सबसे अच्छा मैंने ठोकर खाई हैडेटाफ्रेम पर खाली कॉलम कैसे जोड़ें?
df['foo'] = df.apply(lambda _: '', axis=1)
क्या कोई कम प्रतिकूल विधि है?
एक पांडा DataFrame
ऑब्जेक्ट में खाली कॉलम जोड़ने का सबसे आसान तरीका क्या है? सबसे अच्छा मैंने ठोकर खाई हैडेटाफ्रेम पर खाली कॉलम कैसे जोड़ें?
df['foo'] = df.apply(lambda _: '', axis=1)
क्या कोई कम प्रतिकूल विधि है?
अगर मैं सही ढंग से समझ, असाइनमेंट भरना चाहिए:
>>> df = pd.DataFrame({"A": [1,2,3], "B": [2,3,4]})
>>> df
A B
0 1 2
1 2 3
2 3 4
>>> df["C"] = ""
>>> df["D"] = np.nan
>>> df
A B C D
0 1 2 NaN
1 2 3 NaN
2 3 4 NaN
क्या आप मुझे समझा सकते हैं कि IIUC क्या है? – lmiguelvargasf
@lmiguelvargasf यह 'अगर मैं सही ढंग से समझता हूं' के लिए छोटा है – einonm
this associated question पर डीएसएम के जवाब और निर्माण करने के लिए जोड़ने के लिए, मैं दो मामलों में दृष्टिकोण विभाजित हैं:
एक भी जोड़ा जा रहा है कॉलम: बस नए कॉलम में रिक्त मान असाइन करें, उदाहरण के लिए df['C'] = np.nan
एकाधिक स्तंभों जोड़ना: मैं .reindex(columns=[...])
method of pandas dataframe के स्तंभ अनुक्रमणिका में नए कॉलम जोड़ के लिए उपयोग करने का सुझाव चाहते हैं। यह कई नई पंक्तियों को जोड़ने के लिए भी काम करता है।
यहाँ एक उदाहरण एकाधिक स्तंभों को जोड़ने है:
mydf = mydf.reindex(mydf.columns.tolist() + ['newcol1','newcol2']) # version >= 0.20.0
या
mydf = mydf.reindex(columns = mydf.columns.tolist() + ['newcol1','newcol2']) # version < 0.20.0
आप कभी भी मौजूदा dataframe के लिए एक नया (खाली) dataframe जोड़ सकते हैं, लेकिन है कि 'नहीं करता है मुझे मेरे लिए पाइथोनिक महसूस नहीं है :)
v0.16.0
,से शुरूका उपयोग नए कॉलम (एकल/एकाधिक) को DF
पर असाइन करने के लिए किया जा सकता है। ये कॉलम DF
के अंत में वर्णानुक्रम में डाले गए हैं।
यह उन मामलों में सरल असाइनमेंट की तुलना में फायदेमंद हो जाता है जहां आप सीधे डेटाफ्रेम पर जंजीर परिचालनों की एक श्रृंखला निष्पादित करना चाहते हैं।
df = pd.DataFrame({"A": [1,2,3], "B": [2,3,4]})
df
Out[18]:
A B
0 1 2
1 2 3
2 3 4
df.assign(C="",D=np.nan)
Out[21]:
A B C D
0 1 2 NaN
1 2 3 NaN
2 3 4 NaN
ध्यान दें कि यह नव निर्मित लोगों के साथ-साथ सभी पिछले कॉलम के साथ एक प्रतिलिपि प्रस्तुत करती है:
ही DF
नमूना @DSM द्वारा प्रदर्शन पर विचार करें। मूल DF
के अनुसार संशोधित रूप से संशोधित करने के लिए, इसे df = df.assign(...)
जैसे उपयोग करें क्योंकि यह वर्तमान में inplace
ऑपरेशन का समर्थन नहीं करता है।
सी के लिए डेटाटाइप क्या है? मैं स्ट्रिंग्स की सूची के माध्यम से लूपिंग करके जोड़ने की कोशिश कर रहा हूं। लेकिन यह इसका उपयोग नहीं करता है। – eleijonmarck
@ emunsing के answer कई स्तंभ जोड़ने के लिए वास्तव में अच्छा है, लेकिन मैं इसे अजगर 2.7 में मेरे लिए काम नहीं कर सका। इसके बजाय, मैंने पाया यह काम करता है:
mydf = mydf.reindex(columns = np.append(mydf.columns.values, ['newcol1','newcol2'])
एक भी सरल समाधान है:
df = df.reindex(columns = header_list)
जहां "header_list" हेडर आप दिखाना चाहते हैं की एक सूची है।
सूची में शामिल किसी भी शीर्षलेख को पहले से ही डेटाफ्रेम में नहीं मिला है, नीचे खाली रिक्त कक्षों के साथ जोड़ा जाएगा।
इसलिए यदि
header_list = ['a','b','c', 'd']
तो ग और घ खाली कोशिकाओं के साथ स्तंभों के रूप में जोड़ दिया जाएगा
अधिक सटीक, कॉलम NaNs के साथ जोड़े जाएंगे। – broccoli2000
आप वास्तव में एक स्तंभ रिक्त स्ट्रिंग या बल्कि 'N/A' युक्त करना चाहते हैं? – filmor