gpt4 book ai didi

python - 如何向包含静态预定义列表的现有 Pandas 数据框添加一列?

转载 作者:行者123 更新时间:2023-11-28 20:12:44 25 4
gpt4 key购买 nike

我有一个现有的数据框和一个单独的字符串列表。我想将字符串列表作为附加列添加到数据框中。我希望列表在每一行中都相同。初始数据框是从现有的 Excel 文档创建的。

我尝试使用带有值参数的插入函数作为定义的列表,但我返回了一个错误 - “ValueError:值的长度与索引的长度不匹配”。

df1 = pd.DataFrame({'a': ['a','b','c'], 'b': ['d','e','f']})

testList = ['aa','bb','cc','dd']

#this is not working and returning an error
#dftest = df1.insert(2,"testList",testList)

#this is the resulting dataframe that I want
dfResult = pd.DataFrame({'a': ['a','b','c'], 'b': ['d','e','f'], 'addedList': [['aa','bb','cc'],['aa','bb','cc'],['aa','bb','cc']]})

dfResult

我想要一个额外的列,该列的每一行都填充了相同的列表,如 dfResult 中所示。

最佳答案

我会推荐

df1['addedList']=[['aa', 'bb', 'cc'] for x in range(len(df1))]
df1
Out[156]:
a b addedList
0 a d [aa, bb, cc]
1 b e [aa, bb, cc]
2 c f [aa, bb, cc]

原因如下:如果我们通过相同的副本创建列,当我们更改单个值时,所有其他值都将更改。

df1['addedList']=[testList]*df1.shape[0]
df1['addedList1']=[['aa', 'bb', 'cc'] for x in range(len(df1))]


df1.addedList[0][0]=11111
df1
Out[162]:
a b addedList addedList1
0 a d [11111, bb, cc, dd] [aa, bb, cc]
1 b e [11111, bb, cc, dd] [aa, bb, cc]
2 c f [11111, bb, cc, dd] [aa, bb, cc]
df1.addedList1[0][0]=11111
df1
Out[164]:
a b addedList addedList1
0 a d [11111, bb, cc, dd] [11111, bb, cc]
1 b e [11111, bb, cc, dd] [aa, bb, cc]
2 c f [11111, bb, cc, dd] [aa, bb, cc]

关于python - 如何向包含静态预定义列表的现有 Pandas 数据框添加一列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56960161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com