किसी pandas.DataFrame
वस्तु में एक पंक्ति जोड़ने का सरल कार्य पूरा करना कठिन प्रतीत होता है। इससे संबंधित 3 स्टैकओवरफ़्लो प्रश्न हैं, जिनमें से कोई भी काम का जवाब नहीं देता है।
यहाँ मैं करने की कोशिश कर रहा हूँ। मेरे पास एक DataFrame है जिसमें मैं पहले से ही आकार के साथ-साथ पंक्तियों और स्तंभों के नाम भी जानता हूं।
>>> df = pandas.DataFrame(columns=['a','b','c','d'], index=['x','y','z'])
>>> df
a b c d
x NaN NaN NaN NaN
y NaN NaN NaN NaN
z NaN NaN NaN NaN
अब, मेरे पास पंक्तियों के मूल्यों की पुनरावृति करने के लिए एक फ़ंक्शन है। मैं एक शब्दकोश या एक के साथ एक पंक्ति में कैसे भर सकता हूं pandas.Series
? यहां विभिन्न प्रयास विफल हुए हैं:
>>> y = {'a':1, 'b':5, 'c':2, 'd':3}
>>> df['y'] = y
AssertionError: Length of values does not match length of index
जाहिर तौर पर इसने एक पंक्ति के बजाय एक कॉलम जोड़ने की कोशिश की।
>>> y = {'a':1, 'b':5, 'c':2, 'd':3}
>>> df.join(y)
AttributeError: 'builtin_function_or_method' object has no attribute 'is_unique'
बहुत ही अनजाने त्रुटि संदेश।
>>> y = {'a':1, 'b':5, 'c':2, 'd':3}
>>> df.set_value(index='y', value=y)
TypeError: set_value() takes exactly 4 arguments (3 given)
जाहिर है कि डेटाफ़्रेम में व्यक्तिगत मूल्यों को स्थापित करने के लिए ही है।
>>> y = {'a':1, 'b':5, 'c':2, 'd':3}
>>> df.append(y)
Exception: Can only append a Series if ignore_index=True
ठीक है, मैं सूचकांक को नजरअंदाज नहीं करना चाहता, अन्यथा यहां परिणाम है:
>>> df.append(y, ignore_index=True)
a b c d
0 NaN NaN NaN NaN
1 NaN NaN NaN NaN
2 NaN NaN NaN NaN
3 1 5 2 3
इसने कॉलम नामों को मूल्यों के साथ संरेखित किया, लेकिन पंक्ति लेबल खो दिया।
>>> y = {'a':1, 'b':5, 'c':2, 'd':3}
>>> df.ix['y'] = y
>>> df
a b \
x NaN NaN
y {'a': 1, 'c': 2, 'b': 5, 'd': 3} {'a': 1, 'c': 2, 'b': 5, 'd': 3}
z NaN NaN
c d
x NaN NaN
y {'a': 1, 'c': 2, 'b': 5, 'd': 3} {'a': 1, 'c': 2, 'b': 5, 'd': 3}
z NaN NaN
वह भी बुरी तरह से विफल रहा।
तो आप इसे कैसे करते हैं ?
loc
डेटा फ़्रेम की विशेषता एक विशेष को परिभाषित करती__setitem__
है जो जादू करता है जो मुझे लगता है।