我有一个数据帧df,如下所示:
CustomerId Age
1 25
2 18
3 45
4 57
5 34
我有一个名为“价格”的列表,看起来像这样:
Price = [123,345,1212,11,677]
我想将该列表添加到数据框。这是我的代码:
df['Price'] = Price
这似乎可行,但是当我打印数据框时,名为“ Price”的字段包含所有元数据信息,例如Name,Type ...以及Price的值。
如何创建一个仅包含价格列表值的“价格”列,以便数据框看起来像这样:
CustomerId Age Price
1 25 123
2 18 345
3 45 1212
4 57 11
5 34 677
答案 0 :(得分:2)
我认为,最优雅的解决方案是使用assign
:
df.assign(Price=Price)
CustomerId Age Price
1 25 123
2 18 345
3 45 1212
4 57 11
5 34 677
请注意,分配实际上返回一个DataFrame。 分配用列表价格(右边价格)的内容创建一个新的“价格”列(左边价格)
答案 1 :(得分:0)
您可以将pandas系列添加为列。
import pandas as pd
df['Price'] = pd.Series(Price)
答案 2 :(得分:0)
import pandas as pd
df['Price'] = pd.Series(Price)
如果使用此选项,则如果系列中的值比数据框的值少,则不会收到错误,否则会得到错误,提示您列表中的价位较少,并且无法附加。
答案 3 :(得分:0)
我使用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