मेरे पास एक सूची 'एबीसी' और एक डेटाफ्रेम 'डीएफ' है:
abc = ['foo', 'bar']
df =
A B
0 12 NaN
1 23 NaN
मैं सेल 1 बी में सूची सम्मिलित करना चाहता हूं, इसलिए मैं यह परिणाम चाहता हूं:
A B
0 12 NaN
1 23 ['foo', 'bar']
हो मैं ऐसा कर सकता हूं?
1) अगर मैं इसका उपयोग करता हूं:
df.ix[1,'B'] = abc
मुझे निम्न त्रुटि संदेश मिलता है:
ValueError: Must have equal len keys and value when setting with an iterable
क्योंकि यह सूची को सम्मिलित करने का प्रयास करता है (जिसमें दो तत्व हैं) एक पंक्ति / स्तंभ में लेकिन एक सेल में नहीं।
2) अगर मैं इसका उपयोग करता हूं:
df.ix[1,'B'] = [abc]
फिर यह एक सूची सम्मिलित करता है जिसमें केवल एक तत्व है जो 'एबीसी' सूची ( [['foo', 'bar']]
) है।
3) अगर मैं इसका उपयोग करता हूं:
df.ix[1,'B'] = ', '.join(abc)
फिर यह एक स्ट्रिंग सम्मिलित करता है: ( foo, bar
) लेकिन सूची नहीं।
4) अगर मैं इसका उपयोग करता हूं:
df.ix[1,'B'] = [', '.join(abc)]
फिर यह एक सूची सम्मिलित करता है, लेकिन इसमें केवल एक तत्व ( ['foo, bar']
) है, लेकिन दो नहीं जैसा मैं चाहता हूं ( ['foo', 'bar']
)।
सहायता के लिए धन्यवाद!
संपादित करें
मेरी नई डेटाफ़्रेम और पुरानी सूची:
abc = ['foo', 'bar']
df2 =
A B C
0 12 NaN 'bla'
1 23 NaN 'bla bla'
एक और डेटाफ़्रेम:
df3 =
A B C D
0 12 NaN 'bla' ['item1', 'item2']
1 23 NaN 'bla bla' [11, 12, 13]
मैं 'एबीसी' सूची में df2.loc[1,'B']
और / या सम्मिलित करना चाहता हूं df3.loc[1,'B']
।
यदि डेटाफ़्रेम में केवल पूर्णांक मान और / या NaN मान और / या सूची मान के साथ कॉलम हैं, तो पूरी तरह से एक सेल में सूची सम्मिलित करना कार्य करता है। यदि डेटाफ़्रेम में केवल स्ट्रिंग मान और / या NaN मान और / या सूची मान हैं, तो पूरी तरह से एक सेल कार्य में एक सूची सम्मिलित करना। लेकिन अगर डेटाफ़्रेम में पूर्णांक और स्ट्रिंग मान और अन्य कॉलम के साथ कॉलम हैं, तो त्रुटि संदेश प्रकट होता है यदि मैं इसका उपयोग करता हूं: df2.loc[1,'B'] = abc
या df3.loc[1,'B'] = abc
।
एक और डेटाफ़्रेम:
df4 =
A B
0 'bla' NaN
1 'bla bla' NaN
ये आवेषण पूरी तरह से काम करते हैं: df.loc[1,'B'] = abc
या df4.loc[1,'B'] = abc
।
0.15.0
:df.loc[1,'b'] = ['foo','bar']