ホームページ >バックエンド開発 >Python チュートリアル >Pandas DataFrame の特定のセルにリストを効果的に挿入するにはどうすればよいですか?

Pandas DataFrame の特定のセルにリストを効果的に挿入するにはどうすればよいですか?

DDD
DDDオリジナル
2024-10-30 07:47:28685ブラウズ

How do I effectively insert a list into a specific cell of a Pandas DataFrame?

Python pandas: セルへのリストの挿入

データフレームを操作する場合、多くの場合、個々のデータフレームのコンテンツを調整する必要があります。細胞。この場合のタスクは、特定のリスト「abc」をデータフレームのセル 1B に挿入することです。さまざまな試みが行われてきましたが、それぞれ独自の課題に直面しました。

当初、df.ix[1,'B'] = abc を使用してリスト全体をセルに直接割り当てようとすると、ValueError が発生しました。キーと値の数の不一致が原因です。代わりに df.ix[1,'B'] = [abc] を使用すると、'abc' リストを唯一の要素として含むリストが作成されますが、これは望ましくありません。

df を使用してリストを文字列に変換します。 ix[1,'B'] = ', '.join(abc) は、目的のコンテンツをリストではなく文字列として生成します。同様に、 df.ix[1,'B'] = [', '.join(abc)] を使用すると、単一の文字列要素を含むリストが作成されます。

その後、より複雑なデータフレームにリストを挿入しようとします。整数と文字列の両方を含む列タイプではエラーが発生します。これは、問題が列の混合データ型にあることを示唆しています。

これを解決するには、loc の代わりに at 属性を使用することをお勧めします。このメソッドは一貫して単一の値を参照し、loc で発生する問題を回避します。さらに、挿入される列に dtype=object が設定されていることを確認すると、さらなるエラーが防止されます。

たとえば、次のコードは、'abc' リストを df2 データフレームのセル 1B に正常に挿入します。

import pandas as pd

abc = ['foo', 'bar']
df2 = pd.DataFrame(data={'A': [12, 23], 'B': [None, None], 'C': ['bla', 'bla bla']})

df2['B'] = df2['B'].astype('object')  # Ensure 'B' has dtype=object
df2.at[1, 'B'] = abc

print(df2)

出力:

   A   B         C
0  12  NaN      bla
1  23  [foo, bar]  bla bla

以上がPandas DataFrame の特定のセルにリストを効果的に挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。