「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Python で DataFrame セルにリストを正常に挿入するにはどうすればよいですか?

Python で DataFrame セルにリストを正常に挿入するにはどうすればよいですか?

2024 年 11 月 7 日に公開
ブラウズ:636

How to Successfully Insert a List into a DataFrame Cell in Python?

DataFrame のセルにリストを挿入する

Python パンダでスパース データを扱う場合、特定のセルにリストを挿入するのが難しい場合があります。 df.ix[1,'B'] = abc のような一般的なメソッドを使用してこのような操作を試みると、キーの長さが一致しないためにエラーが発生することがよくあります。

代替解決策と制限事項

回避策を試みます。追加の角括弧でリストを囲むか (例: df.ix[1,'B'] = [abc])、または文字列表現を使用することによるエラー (例: df.ix[1,'B'] = ', '.join) (abc)) では、追加の要素が導入されたり、意図したデータ構造が変更されたりするため、不十分です。

リストの挿入に df.at を使用する

より効果的なアプローチは、代わりに df.at を使用することです。 df.ix または df.loc。 df.at は特に単一のセルをターゲットにしており、前述のエラーを引き起こす可能性のあるあいまいさを排除しています。

import pandas as pd

# Create a dataframe with mixed data types
df = pd.DataFrame(data={'A': [1, 2, 3], 'B': ['x', 'y', 'z']})

# Insert a list into cell 1B
df.at[1, 'B'] = ['m', 'n']

print(df)

この操作は、エラーなしで ['m', 'n'] をセル 1B に正常に挿入しました。

列 Dtype の互換性の確保

注意してください。リストを挿入する列の dtype が「object」に設定されている必要があります。列の dtype が「int64」など異なる場合、エラーが発生します。これに対処するには、挿入を試行する前に列の dtype を変換します:

df = pd.DataFrame(data={'A': [1, 2, 3], 'B': [1,2,3]})
df['B'] = df['B'].astype('object')

# Now, list insertion will work as expected
df.at[1, 'B'] = [1, 2, 3]
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3