gpt4 book ai didi

python - 有什么方法可以从 pandas 中的一列 float 创建一列元组吗?

转载 作者:行者123 更新时间:2023-11-30 22:56:23 25 4
gpt4 key购买 nike

我得到了以下形式的元组列表:

ls = [(14, 6, 1.5), (14, 7, 1.5), (14, 8, 1.5), (14, 9, 1.5), (14, 10, 1.5), (14, 11, 1.5), (14, 12, 1.5), ..., (14, 13, 1.5), (14, 14, 1.5), (14, 15, 1.5)]

有一个 pandas DataFrame,其中一列 data['ind'] 是与上述列表的索引相对应的整数。现在我想创建一个新列,其中包含与同一行的索引列条目相对应的元组。我这样做是这样的:

data['ls'] = data['ind'].apply(lambda x: ls[x])

但我收到以下错误:

ValueError: setting an array element with a sequence.

有什么办法可以解决这个错误吗?如果列表包含 float 或整数而不是元组,则代码可以完美运行...

最佳答案

我首先会从您的元组列表中创建一个系列:

LS = pd.Series(ls)

然后调用map:

data['ls'] = data['ind'].map(LS)

使用列表示例:

ls = [(14, 6, 1.5), (14, 7, 1.5), (14, 8, 1.5), (14, 9, 1.5), (14, 10, 1.5), (14, 11, 1.5), (14, 12, 1.5)]

还有这个:

data = pd.DataFrame({'ind':[0,2,3]})

执行查找会导致:

In [10]: LS = pd.Series(ls)

In [11]: LS
Out[11]:
0 (14, 6, 1.5)
1 (14, 7, 1.5)
2 (14, 8, 1.5)
3 (14, 9, 1.5)
4 (14, 10, 1.5)
5 (14, 11, 1.5)
6 (14, 12, 1.5)
dtype: object

In [12]: data['ls'] = data['ind'].map(LS)

In [13]: data
Out[13]:
ind ls
0 0 (14, 6, 1.5)
1 2 (14, 8, 1.5)
2 3 (14, 9, 1.5)

关于python - 有什么方法可以从 pandas 中的一列 float 创建一列元组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37033497/

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