次のようなデータフレームdfがあります。
CustomerId Age
1 25
2 18
3 45
4 57
5 34
次のような「価格」というリストがあります。
Price = [123,345,1212,11,677]
そのリストをデータフレームに追加したいと思います。これが私のコードです:
df['Price'] = Price
機能しているようですが、データフレームを印刷すると、「価格」というフィールドに、名前、タイプなどのすべてのメタデータ情報と、価格の値が含まれています。
価格リストの値のみを含む「Price」という列を作成して、データフレームが次のようになるようにするにはどうすればよいですか。
CustomerId Age Price
1 25 123
2 18 345
3 45 1212
4 57 11
5 34 677
私の意見では、最もエレガントな解決策は assign
を使用することです:
df.assign(Price=Price)
CustomerId Age Price
1 25 123
2 18 345
3 45 1212
4 57 11
5 34 677
データフレームを実際に返すことに注意してください。割り当ては、リスト価格(右価格)の内容で新しい列「価格」(左価格)を作成します
pandas seriesを列として追加できます。
import pandas as pd
df['Price'] = pd.Series(Price)
私はpandas.read_clipboardを使用してあなたの例をコピーしてデータフレームに貼り付け、次のように列を追加しました:
import pandas as pd
df = pd.read_clipboard()
Price = [123,345,1212,11,677]
df.loc[:,'Price'] = Price
df
これを生成する:
CustomerId Age Price
0 1 25 123
1 2 18 345
2 3 45 1212
3 4 57 11
4 5 34 677
import pandas as pd
df['Price'] = pd.Series(Price)
これを使用すると、データフレームよりもシリーズの値が少ない場合はエラーが発生しません。そうでない場合は、リストの値が少なく、追加できないことを示すエラーが発生します。