gpt4 book ai didi

python - 基于另一列追加 Pandas DataFrame 列

转载 作者:太空宇宙 更新时间:2023-11-04 09:31:12 25 4
gpt4 key购买 nike

我有如下所示的 Pandas DataFrame:

| Index | Value        |
|-------|--------------|
| 1 | [1, 12, 123] |
| 2 | [12, 123, 1] |
| 3 | [123, 12, 1] |

我想在第三列附加数组元素长度列表:

| Index | Value        | Expected_value |
|-------|--------------|----------------|
| 1 | [1, 12, 123] | [1, 2, 3] |
| 2 | [12, 123, 1] | [2, 3, 1] |
| 3 | [123, 12, 1] | [3, 2, 1] |

我试过像这样使用 python lambda 函数和映射:

dataframe["Expected_value"] = dataframe.value.map(lambda x: len(str(x)))

但不是列表我得到了这些长度的总和:

| Index | Value        | Expected_value |
|-------|--------------|----------------|
| 1 | [1, 12, 123] | 6 |
| 2 | [12, 123, 1] | 6 |
| 3 | [123, 12, 1] | 6 |

最佳答案

您可以将 list comprehensionmap 一起使用:

dataframe["Expected_value"] = dataframe.Value.map(lambda x: [len(str(y)) for y in x])

或嵌套列表理解:

dataframe["Expected_value"] = [[len(str(y)) for y in x] for x in dataframe.Value]

还有可能使用替代方法来获取整数的长度:

import math
dataframe["Expected_value"] = [[int(math.log10(y))+1 for y in x] for x in dataframe.Value]

print (dataframe)
Index Value Expected_value
0 1 [1, 12, 123] [1, 2, 3]
1 2 [12, 123, 1] [2, 3, 1]
2 3 [123, 12, 1] [3, 2, 1]

关于python - 基于另一列追加 Pandas DataFrame 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55669004/

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