Python パンダでスパース データを扱う場合、特定のセルにリストを挿入するのは困難な場合があります。 df.ix[1,'B'] = abc のような一般的なメソッドを使用してこのような操作を試みると、キーの長さの不一致によるエラーが発生することがよくあります。
回避策を試みます。追加の角括弧でリストを囲むか (例: df.ix[1,'B'] = [abc])、または文字列表現を使用することによるエラー (例: df.ix[1,'B'] = ', '.join) (abc)) は、追加の要素が導入されたり、意図したデータ構造が変更されたりするため、不十分です。
より効果的なアプローチは、代わりに df.at を使用することです。 df.ix または df.loc。 df.at は特に単一のセルをターゲットにし、前述のエラーを引き起こす可能性のあるあいまいさを排除します。
<code class="python">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)</code>
この操作は、エラーなしで ['m', 'n'] をセル 1B に正常に挿入します。
リストを挿入する列の dtype が「object」に設定されている必要があることに注意することが重要です。列の dtype が「int64」など異なる場合、エラーが発生します。これに対処するには、挿入を試行する前に列の dtype を変換します:
<code class="python">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]</code>
以上がPython で DataFrame セルにリストを正常に挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。