私はリスト「abc」とデータフレーム「df」を持っています:
abc = ['foo', 'bar']
df =
A B
0 12 NaN
1 23 NaN
リストをセル1Bに挿入したいので、次の結果が必要です。
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つの要素を持つ)を行/列に挿入しようとしますが、セルには挿入しないためです。
2)これを使用する場合:
df.ix[1,'B'] = [abc]
次に、 'abc'リスト([['foo', 'bar']]
)である要素が1つだけのリストを挿入します。
3)これを使用する場合:
df.ix[1,'B'] = ', '.join(abc)
次に、文字列を挿入します:(foo, bar
)がリストではありません。
4)これを使用する場合:
df.ix[1,'B'] = [', '.join(abc)]
次に、リストを挿入しますが、要素は1つしかあり['foo, bar']
ませんが()、必要に応じて2つはありません(['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']
および/に「abc」リストを挿入したい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']