将列表转换为Python Dataframe中的列

时间:2018-07-06 11:54:52

标签: python list pandas dataframe metadata

我有一个数据帧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

4 个答案:

答案 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